m6w6 / seekat
seekat wraps github api in php
dev-master
2022-06-09 21:28 UTC
Requires
- php: >=8.1
- ext-http: >=4.2
- ext-json: *
- monolog/monolog: ^3
- psr/cache: ^1
- psr/log: ^3
- psr/simple-cache: ^1
- rize/uri-template: ^0.3.4
Requires (Dev)
- php: >=8.1
- amphp/amp: ^2
- phpcompatibility/php-compatibility: *
- phpunit/phpunit: ^9
- react/promise: ^2
- squizlabs/php_codesniffer: *
This package is auto-updated.
Last update: 2025-01-10 02:54:18 UTC
README
Fluent Github API access with ext-http.
Support for the following promise providers built in:
Supports plugging into your favourite event loop through http\Client's custom event loop interface.
Simple example:
<?php use seekat\API; $api = new API(API\Future\react()); $api->repos->m6w6->seekat->readme->as("html")->then(function($readme) { echo $readme; }, function($error) { echo $error; }); $api->send();
Full example:
<?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
Composer
composer require m6w6/seekat
ChangeLog
A comprehensive list of changes can be obtained from the releases overview.
License
seekat is licensed under the 2-Clause-BSD license, which can be found in the accompanying LICENSE file.
Contributing
All forms of contribution are welcome! Please see the bundled CONTRIBUTING note for the general principles followed.
The list of past and current contributors is maintained in THANKS.