Add simpler push support for GitHub

[?]
Feb 26, 2013, 12:14 AM
EVZTBKEFHKIT6LIDRNAYFNELPYS7L2YQBLPQUB3LHLYSP3UM4OCQC

Dependencies

  • [2] PCKLFRT5 Support push notification of repository changes
  • [*] BKOIYITR added some json responses
  • [*] HPEG2RHV Merge the BuildResultInfo table into the Builds table

Change contents

  • edit in src/lib/Hydra/Controller/API.pm at line 11
    [4.207]
    [4.207]
    use JSON;
  • edit in src/lib/Hydra/Controller/API.pm at line 320
    [2.1440]
    [2.1440]
    $c->forward('View::JSON');
    }
    sub push_github : Chained('api') PathPart('push-github') Args(0) {
    my ($self, $c) = @_;
    $c->{stash}->{json}->{jobsetsTriggered} = [];
    my $in = decode_json $c->req->body_params->{payload};
    my $owner = $in->{repository}->{owner}->{name} or die;
    my $repo = $in->{repository}->{name} or die;
    print STDERR "got push from GitHub repository $owner/$repo\n";
    triggerJobset($self, $c, $_) foreach $c->model('DB::Jobsets')->search(
    { 'project.enabled' => 1, 'me.enabled' => 1 },
    { join => 'project'
    , where => \ [ 'exists (select 1 from JobsetInputAlts where project = me.project and jobset = me.name and value like ?)', [ 'value', "%github.com%/$owner/$repo.git%" ] ]
    });
  • edit in src/lib/Hydra/Controller/API.pm at line 345
    [5.2960]
    [4.6139]