GithubのWebhookを受け取ってみる


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

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

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

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

Event Types | GitHub API

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

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

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


この記事はPerl, プログラミング, 未分類に投稿されました タグ: . このパーマリンクをブックマークする。 コメントを投稿するか、トラックバックをどうぞ: トラックバック URL.

コメントする

あなたのメールは 絶対に 公開されたり共有されたりしません。 * が付いている欄は必須項目です

次の HTML タグと属性が使用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*
*