githubのwebhookでpushの通知をHTTPで受信する

タグ: github / 公開: 2013-04-20

githubはリポジトリにpushされたことを外部に通知する機能としてService Hooksを備えている。 Service Hooksの1つにwebhookがあり、pushされたことをJSONで任意のURLにHTTPでPOSTできる。

webhookの設定は、githubのリポジトリの”Settings”のページ、左のメニュー”Service Hooks”から、”WebHook URLs”を選び、URLを入力、”Update Setting”するだけで良い。

1度設定してしまえば、同じ画面で”Test Hook”ボタンをクリックすれば、即座にgithubからPOSTされ、Webhookをテストできる。 githubのページには、RubyのSinatraでPOSTを受信しJSONをパースする以下の例が掲載されている。

post '/' do
  push = JSON.parse(params[:payload])
  "I got some JSON: #{push.inspect}"
end

POSTされるJSONにはブランチやファイルパスが含まれるので、例えばmasterにpushされたらデプロイするような仕組みを、自由に作り込めるだろう。

見た限りWebHookに限らずService HooksにはIRCなど様々な通知方法が用意されていて、他にも工夫次第で何でもできるようだ。

参考: Post-Receive Hooks

この記事をSNSでシェアする
タイトルとURLをコピーする
または投稿画面を開く
Author
Icon
ぺけみさお / xmisao
プログラマ。
Subscription
Recent articles
Related to github