0232c9ff809589ed88ff6adf260e013470208f56
[grml-infrastructure.git] / tools / github
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use v5.10;
5 use File::HomeDir;
6 use File::Slurp qw ( slurp );
7 use Data::Dumper;
8 use Net::GitHub;
9
10
11 my $token = slurp(File::HomeDir->my_home . "/.github-token");
12
13 my $gh = Net::GitHub->new(  # Net::GitHub::V3
14     access_token => $token
15 );
16
17 my @repos = $gh->repos->list_org('grml');
18
19 foreach my $repo (@repos) {
20     say $repo->{name};
21     say "-" x length($repo->{name});
22     my @hooks = $gh->repos->hooks('grml', $repo->{name});
23     my $found = 0;
24     foreach my $hook (@hooks) {
25         #warn Dumper($hook);
26         next unless $hook->{name} eq 'web';
27         next unless $hook->{config}->{url} eq "http://git.grml.org/github";
28         $found = 1;
29     }
30     if ($found) {
31         say "git.grml.org hook already configured";
32     } else {
33         my $rc = $gh->repos->create_hook('grml', $repo->{name}, {
34                 name => 'web',
35                 active => 1,
36                 config => {
37                     'content_type' => 'form',
38                     'url' => 'http://git.grml.org/github'
39                 }
40             });
41         say "Hook created" if $rc->{config}->{url} eq "http://git.grml.org/github";
42     }
43     say;
44 }