CA Reward

Tech Blog

Tech Blogトップに戻る

Githubのレビューコメントをいい感じにSlackに流す

2016.08.24

  • このエントリーをはてなブックマークに追加
  • Pocket
いいちゃん
いいちゃんエンジニア

SlackにはGithub連携機能元から存在しています。 しかし、元からある連携機能では少し物足りない点があります。

  • GithubでmentionしてもSlackではmentionしてくれない
  • コードへの指摘コメントを貰ってもSlackには対象のコードが表示されない
  • LGTM画像を送っても同じ画像だと表示されないことがある?(これはSlack側の仕様だと思います

そこでHubotを使って自前でGithubとSlackのコメントを連携させることにしました。

機能

  • IssueとPullRequestへのコメントをSlackに流す
  • コメント内のGithubのMentionをSlackのMentionに変換する
  • PullRequestのコード差分へのコメントであればコード差分をもSlackに表示する
  • LGTM画像が常に表示されるようにする
  • おせっかい機能:LGTM画像が必要そうなら勝手に追加してPostする

概要図

概要図

Github側の設定

Webhookの登録

対象のリポジトリに対してWebhookを登録します。

webhook設定

これでIssueやPullRequestにコメントをするとHubotへWebhookが送られます。

Hubotスクリプト

大まかな処理の流れ

  1. コメント投稿以外はスルー(コメント編集・削除など
  2. Repositoryに対して投稿するSlackのCHANNELを選択
  3. PullRequestのコード差分に対してのコメントであればコード差分を取得して整形
  4. コメント内のGithubのMentionをSlackのMentionに変換
  5. LGTM画像が表示されるようにURLパラメータにタイムスタンプを追加
  6. LGTMだけどLGTM画像無ければ寂しいので勝手に追加
  7. SlackにPost

スクリプト

結果

Slack結果

コード差分が表示されて、Mentionも送られるようになりました。

最後に

導入してみるとGithubへのMentionにすぐ気づけるので、コードレビューのサイクルが早くなって開発スピードが上がったように感じます。 コード差分がSlackに流れるので気になった人が野良レビューしたりなんかもあったので、導入して良かったです。

いいちゃん
いいちゃんエンジニア