[?]
Nov 27, 2008, 5:01 PM
LQ5QEDVVHVGX67NJZQ46HOSY336VCLN63L3DT6QNSDV6ARVARITAC

Dependencies

  • [2] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [3] 2AIIYGI5 * Show job status and all builds for a project.
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.

Change contents

  • edit in src/Hydra/lib/Hydra/Controller/Root.pm at line 180
    [2.417]
    [2.417]
    }
    sub attrsToSQL {
    my ($attrs, $id) = @_;
    my @attrs = split / /, $attrs;
    my $query = "1 = 1";
    foreach my $attr (@attrs) {
    $attr =~ /^([\w-]+)=([\w-]*)$/ or die "invalid attribute in release set: $attr";
    my $name = $1;
    my $value = $2;
    # !!! Yes, this is horribly injection-prone... (though
    # name/value are filtered above). Should use SQL::Abstract,
    # but it can't deal with subqueries. At least we should use
    # placeholders.
    $query .= " and (select count(*) from buildinputs where build = $id and name = '$name' and value = '$value') = 1";
    }
    return $query;
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 220
    [2.1228][2.1228:1233]()
    [2.1228]
    [2.1233]
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 223
    [2.1340][2.1340:1472]()
    { join => 'resultInfo', order_by => "timestamp DESC", '+select' => ["resultInfo.releasename"], '+as' => ["releasename"] });
    [2.1340]
    [2.1472]
    { join => 'resultInfo', order_by => "timestamp DESC"
    , '+select' => ["resultInfo.releasename"], '+as' => ["releasename"]
    , where => \ attrsToSQL($primaryJob->attrs, "me.id")
    });
  • replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 247
    [2.2208][2.2208:2275]()
    , order_by => ["buildstatus", "timestamp"] });
    [2.2208]
    [2.2275]
    , order_by => ["buildstatus", "timestamp"]
    , where => \ attrsToSQL($job->attrs, "build.id")
    });
  • replacement in src/Hydra/root/releases.tt at line 1
    [2.8435][2.8436:8477]()
    [% WRAPPER layout.tt title="Releases" %]
    [2.8435]
    [2.8477]
    [% WRAPPER layout.tt title="Release Set ‘$releaseSet.project.name:$releaseSet.name’" %]
  • edit in src/Hydra/root/releases.tt at line 4
    [2.8516][2.8516:8535]()
    <h1>Releases</h1>
  • replacement in src/Hydra/root/releases.tt at line 5
    [2.8536][2.8536:8594]()
    <!-- <p>Description: [% releaseSet.description %]</p> -->
    [2.8536]
    [2.8594]
    <h1>Release Set <tt>[% releaseSet.project.name %]:[% releaseSet.name %]</tt></h1>