X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=app%2FGithub%2FAPI%2FHooks%2FUpdateHook.php;fp=app%2FGithub%2FAPI%2FHooks%2FUpdateHook.php;h=cd249bad2b7bb544fbfaf147566af44bb28926cd;hb=a2af03951ac7fbd032609d0044c0a85704b77771;hp=0000000000000000000000000000000000000000;hpb=25b99959b9e66d00681092977c23b5df32ead5f4;p=pharext%2Fpharext.org diff --git a/app/Github/API/Hooks/UpdateHook.php b/app/Github/API/Hooks/UpdateHook.php new file mode 100644 index 0000000..cd249ba --- /dev/null +++ b/app/Github/API/Hooks/UpdateHook.php @@ -0,0 +1,32 @@ +url->mod(uri_template("./repos/{+repo}/hooks{/id}", $this->args)); + $request = new \http\Client\Request("PATCH", $url, [ + "Authorization" => "token ". $this->api->getToken(), + "Accept" => $this->config->api->accept, + "Content-Type" => "application/json", + ]); + + $events = []; + if (!empty($this->args["conf"]["tag"])) { + $events[] = "create"; + } + if (!empty($this->args["conf"]["release"])) { + $events[] = "release"; + } + + $request->getBody()->append(json_encode(compact("events"))); + $this->api->getClient()->enqueue($request, function($response) use($callback) { + if ($response->getResponseCode() >= 400 || null === ($json = json_decode($response->getBody()))) { + throw new \app\Github\Exception\RequestException($response); + } + $callback($json); + return true; + }); + } +}