GitHubのWebHookを試してみる

GitHubにサンプルのリポジトリを作ってみる
の続き

GitHubのWebHookを試してみる。

準備

適当なサーバに、
GitHubのWebhookのJSONデータを受け取って
ログに出力するだけのPHPを設置しておく。

server$ vi index.php
<?php
$json = file_get_contents('php://input');
$params = json_decode($json, true);
error_log(print_r($params, true), 3, 'error.log');

Webhookの作成

リポジトリの設定画面でwebhookを追加する。
Payload URLには、適当なサーバに設置したPHPのURLを指定する。

Content typeに「application/x-www-form-urlencoded」を指定すると、$_POSTで受け取れる。
Secretを設定すると、ヘッダーに署名がついてくるみたいだが、よく分かっていないので、今回は省略。

プッシュしてみる

適当に編集してプッシュしてみる。

$ vi README.md
$ git commit -am '適当に編集'
$ git push

確認

ログを確認すると、下記のようなログが出力されているのが確認できる。

Array
(
    [ref] => refs/heads/master
    [after] => ・・・
    [before] => ・・・
    [created] =>
    [deleted] =>
    [forced] =>
    [compare] => https://github.com/yk5656/sample/compare/・・・
    [commits] => Array
        ・・・
        )
    [head_commit] => Array
        (
        ・・・
        )
    [repository] => Array
        (
        ・・・
        )
    [pusher] => Array
        (
            [name] => yk5656
            [email] => ・・・
        )
)