d488e97b2ba6ab14a9ee64a66ea8ec87a82ea427
[m6w6/seekat] / examples / generator.php
1 #!/usr/bin/env php
2 <?php
3
4 require_once __DIR__."/../vendor/autoload.php";
5
6 use seekat\API;
7
8 $log = new Monolog\Logger("seekat");
9 $log->pushHandler((new Monolog\Handler\StreamHandler(STDERR))->setLevel(Monolog\Logger::INFO));
10
11 $cli = new http\Client("curl", "seekat");
12
13 $api = new API([
14 "Authorization" => "token ".getenv("GITHUB_TOKEN")
15 ], null, $cli, $log);
16
17 $api(function() use($api) {
18 $count = 0;
19 $events = yield $api->repos->m6w6->{"ext-http"}->issues->events();
20 while ($events) {
21 /* pro-actively queue the next request */
22 $next = $events->next();
23
24 foreach ($events as $event) {
25 if ($event->event == "labeled") {
26 continue;
27 }
28 ++$count;
29 printf("@%s %s issue #%d (%s) at %s\n",
30 $event->actor->login,
31 $event->event,
32 (int) (string) $event->issue->number,
33 $event->issue->title,
34 $event->created_at
35 );
36 }
37 $events = yield $next;
38 }
39 return $count;
40 })->done(function($count) {
41 printf("Listed %d events\n", $count);
42 });
43