[?]
Nov 27, 2008, 5:01 PM
LQ5QEDVVHVGX67NJZQ46HOSY336VCLN63L3DT6QNSDV6ARVARITACDependencies
- [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
}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
- replacement in src/Hydra/lib/Hydra/Controller/Root.pm at line 223
{ join => 'resultInfo', order_by => "timestamp DESC", '+select' => ["resultInfo.releasename"], '+as' => ["releasename"] });{ 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
, order_by => ["buildstatus", "timestamp"] });, order_by => ["buildstatus", "timestamp"], where => \ attrsToSQL($job->attrs, "build.id")}); - replacement in src/Hydra/root/releases.tt at line 1
[% WRAPPER layout.tt title="Releases" %][% WRAPPER layout.tt title="Release Set ‘$releaseSet.project.name:$releaseSet.name’" %] - edit in src/Hydra/root/releases.tt at line 4
<h1>Releases</h1> - replacement in src/Hydra/root/releases.tt at line 5
<!-- <p>Description: [% releaseSet.description %]</p> --><h1>Release Set <tt>[% releaseSet.project.name %]:[% releaseSet.name %]</tt></h1>