37cb8e0ed2f895f9e58d3d4dbcf6b6f11ea4d0de
[m6w6/seekat] / examples / hooks.php
1 #!/usr/bin/env php
2 <?php
3
4 require_once __DIR__."/../vendor/autoload.php";
5
6 use seekat\API;
7
8 $cli = new http\Client("curl", "seekat");
9 $cli->configure([
10 "max_host_connections" => 10,
11 "max_total_connections" => 50,
12 "use_eventloop" => false,
13 ]);
14
15 $log = new Monolog\Logger("seekat");
16 $log->pushHandler((new Monolog\Handler\StreamHandler(STDERR))->setLevel(Monolog\Logger::WARNING));
17
18 $api = new API([
19 "Authorization" => "token ".getenv("GITHUB_TOKEN")
20 ], null, $cli, $log);
21
22 $api(function() use($api) {
23 $repos = yield $api->users->m6w6->repos([
24 "visibility" => "public",
25 "affiliation" => "owner"
26 ]);
27 while ($repos) {
28 $next = next($repos);
29
30 $batch = [];
31 foreach ($repos as $repo) {
32 $batch[] = $repo->hooks();
33 }
34 foreach (yield $batch as $key => $hooks) {
35 if (!count($hooks)) {
36 continue;
37 }
38 printf("%s:\n", $repos->{$key}->name);
39 foreach ($hooks as $hook) {
40 if ($hook->name == "web") {
41 printf("\t%s\n", $hook->config->url);
42 } else {
43 printf("\t%s\n", $hook->name);
44 }
45 }
46 }
47
48 $repos = yield $next;
49 }
50 });