946bb0cc4c8d215aff03ee0af9b3485256dd214b
3 namespace app\Github\API
;
9 class Hook
implements Controller
14 function __construct(Web
$app, API
$github) {
16 $this->github
= $github;
19 function __invoke(array $args = []) {
20 $request = $this->app
->getRequest();
21 $response = $this->app
->getResponse();
23 if (!($sig = $request->getHeader("X-Github-Signature")) ||
!($evt = $request->getHeader("X-Github-Event"))) {
24 $response->setResponseCode(400);
25 } elseif ($sig !== hash_hmac("sha1", $request->getBody(), $this->app
->getConfig()->github
->client
->secret
)) {
26 $response->setResponseCode(403);
27 } elseif ($evt === "ping") {
28 $response->setReponseStatus("PONG");
29 } elseif ($evt !== "push") {
30 $this->app
->getResponse()->setResponseCode(204);
32 $push = json_decode($request->getBody());