X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=app%2FGithub%2FAPI.php;h=e56ada1ecb3941079ddf9a176a07130cc08ccabd;hb=8218e7f0e7eed6bba889dee119e4db7a9b236a86;hp=0f63a60f5b873a33abdfc07d78538de9a829ce27;hpb=eb76e9bb9a39fe2725301f6cf6fc3cf29bbc4e00;p=pharext%2Fpharext.org diff --git a/app/Github/API.php b/app/Github/API.php index 0f63a60..e56ada1 100644 --- a/app/Github/API.php +++ b/app/Github/API.php @@ -49,7 +49,8 @@ class API function __construct(Config $config, LoggerInterface $logger, Storage $tokens = null, Storage $cache = null) { $this->logger = $logger; $this->config = $config; - $this->client = new Client; + $this->client = new Client("curl", "github"); + $this->client->configure($config->http->configure->toArray()); $this->client->attach(new ClientObserver($logger)); $this->tokens = $tokens ?: new Storage\Session; $this->cache = $cache; @@ -168,6 +169,22 @@ class API return $call($callback); } + /** + * Check if the pharext webhook is set for the repo and return it + * @param object $repo + * @return stdClass hook + */ + function checkRepoHook($repo) { + if ($repo->hooks) { + foreach ($repo->hooks as $hook) { + if ($hook->name === "web" && $hook->config->url === $this->config->hook->url) { + return $hook; + } + } + } + return null; + } + function listHooks($repo, callable $callback) { $call = new API\Hooks\ListHooks($this, compact("repo")); return $call($callback); @@ -207,9 +224,19 @@ class API $call = new API\Releases\CreateRelease($this, compact("repo", "tag")); return $call($callback); } - + + function publishRelease($repo, $id, $tag, callable $callback) { + $call = new API\Releases\PublishRelease($this, compact("repo", "id", "tag")); + return $call($callback); + } + function createReleaseAsset($url, $asset, $type, callable $callback) { $call = new API\Releases\CreateReleaseAsset($this, compact("url", "asset", "type")); return $call($callback); } + + function listReleaseAssets($repo, $id, callable $callback) { + $call = new API\Releases\ListReleaseAssets($this, compact("repo", "id")); + return $call($callback); + } }