kinoppyd.dev

blog

products

accounts & contact

GithubのWebhookを受け取ってみる

posted at 2014-04-26 18:08:32 +0900 by kinoppyd

仕事ではGithubを使った開発をやっているので、コードレビューやなんかもGithub上でやっている。

しかし、コメントはGithub上でやっているが、その他の多くのやりとりを他のグループウェアでやっている関係上、Githubに書いてはグループウェア上でURLを張り、コメントを求めるというやや二度手間的な事態が発生していた。

なので、GithubのWebhookを受け取り、PullRequestにコメントがあった場合は、グループウェアの方にその内容を転記するシステムを作ろうと思って、ここ数日なんじゃかかんじゃかコードを書いていた。

その過程で、GithubのWebhookを実際に受け取り、その内容を精読していたのだが、どうもドキュメント類を読んでも「Githubの何のイベントに対応したHookなのか」を知る方法が分からない。 現状で欲しいのはPullRequestに対するコメントだけなので 、その他の雑多なHookはどうでもいいのだが、今後の拡張性を考えると、どんなHookなのかを判別する方法は今のうちに作っておいた方がいい。

[Event Types GitHub API](https://developer.github.com/v3/activity/events/types/)

で、困ったので、手っ取り早くMojolicious::Liteアプリを書いて、実際にどんな値を受け取ってるのか、Dumpしてみた。

morbo github_hook_test

すると、どうもPOSTのX-Headerに、x-github-eventというキーがあって、それで判断できるらしい。一体、ドキュメントのどこにそんなことが書いてあるのか謎だが、とりあえず分かって良かった。

途中での方向転換とか紆余曲折色々あったけど、これでようやく、HookJunctionの最初の動くバージョンが作れそうだ。