update to PHP-8.1
[m6w6/seekat] / README.md
index 6d092623979deb680caf4ad8e0c77b78881098b3..ffee664fe49f701e54b97247c19026e3550a9532 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,13 +1,26 @@
 # seekat
 
-Fluent Github API access with PHP-7 and [ext-http](https://github.com/m6w6/ext-http).
+[![Build Status](https://travis-ci.org/m6w6/seekat.svg)](https://travis-ci.org/m6w6/seekat)
+
+Fluent Github API access with [ext-http](https://github.com/m6w6/ext-http).
+
+Support for the following promise providers built in:
+ * [ReactPHP](https://github.com/reactphp/promise)
+ * [AmPHP](https://github.com/amphp/amp)
+
+Supports plugging into your favourite event loop through
+[http\Client's custom event loop interface](https://mdref.m6w6.name/http/Client/Curl/User).
+
+Simple example:
 
 ```php
 <?php
 
 use seekat\API;
 
-(new API)->repos->m6w6->seekat->readme->as("html")->then(function($readme) {
+$api = new API(API\Future\react());
+
+$api->repos->m6w6->seekat->readme->as("html")->then(function($readme) {
        echo $readme;
 }, function($error) {
        echo $error;
@@ -16,7 +29,59 @@ use seekat\API;
 $api->send();
 ```
 
-> ***Note:*** WIP
+Full example:
+
+```php
+<?php
+
+require_once __DIR__."/../vendor/autoload.php";
+
+use seekat\API;
+use function seekat\API\Links\next;
+
+$cli = new http\Client("curl", "seekat");
+$cli->configure([
+       "max_host_connections" => 10,
+       "max_total_connections" => 50,
+]);
+
+$log = new Monolog\Logger("seekat");
+$log->pushHandler(new Monolog\Handler\StreamHandler(STDERR, Monolog\Logger::WARNING));
+
+$api = new API(API\Future\react(), [
+       "Authorization" => "token ".getenv("GITHUB_TOKEN")
+], null, $cli, $log);
+
+$api(function($api) {
+       $repos = yield $api->users->m6w6->repos([
+               "visibility" => "public",
+               "affiliation" => "owner"
+       ]);
+       while ($repos) {
+               $next = next($repos);
+
+               $batch = [];
+               foreach ($repos as $repo) {
+                       $batch[] = $repo->hooks();
+               }
+               foreach (yield $batch as $key => $hooks) {
+                       if (!count($hooks)) {
+                               continue;
+                       }
+                       printf("%s:\n", $repos->{$key}->name);
+                       foreach ($hooks as $hook) {
+                               if ($hook->name == "web") {
+                                       printf("\t%s\n", $hook->config->url);
+                               } else {
+                                       printf("\t%s\n", $hook->name);
+                               }
+                       }
+               }
+
+               $repos = yield $next;
+       }
+});
+```
 
 
 ## Installing
@@ -28,7 +93,7 @@ $api->send();
 ## ChangeLog
 
 A comprehensive list of changes can be obtained from the
-[releases overview](./releases).
+[releases overview](https://github.com/m6w6/seekat/releases).
 
 ## License