CakePHP
GitHub
cakephp2

【CakePHP】github webhookとの連携

github webhookとcakephpを連携させる手順を簡単にまとめておきます

やりたいこと

  • githubにpushされたら何かしらのアクションを起こしたい

github側での手順

  • 連携したいリモートリポジトリの「settings」を開く image.png
  • 左のメニューからwebhookをクリック image.png
  • add webhookをクリック image.png
  • payLoad URLには飛ばしたいコントローラのアクションまでのパスを書く
    • 例:\http://localhost/myapp/models/action?token=aaaaaaaaaa
    • Which events would you like to trigger this webhook?の項だが今回はプッシュでのみ反応させたいので一番上を選ぶ
    • それ以外の項目は今回特に設定しない
    • 最後にadd webhook image.png
    • webhook一覧に先ほど作成したwebhookが表示されている。
    • クリックすると編集画面にいけるのだが、画面下部に通信履歴が表示される。
    • 通信成功していれば緑のチェックマークが出るので覚えておきましょう

cakephp側の設定

  • コントローラ側で適当な処理を書いてやればいいだけ
  • githubから送信される内容は$this->request->data['payload']で拾えます
    • payloadの見方は下記URLのEventsを参照
    • サーバーにIP制限をかけている場合はgithubからのアクセスを許可してやる必要があります。
      • https://api.github.com/meta
      • こちらのhooksに書かれているアドレスがgithubの外部向けIPアドレスとなっています