GitHubからの通知をフィルタしてSlack連携する

Created: 2018-05-18

GitHubは、現在では無くてはならない開発インフラのひとつとなっていますが、いまいちその通知機能のバランスが悪く、重要な通知(レビューリクエストや、担当Issueの更新等)を見逃してしまいがちです。この通知機能のバランスの悪さの原因は、過剰に通知が送られてくることで、重要な通知が埋もれてしまいがちなところにあるように思えます。

ただ一方で、重要な通知については(総量としては過剰ではあるものの)漏らさず、しっかりと届けられてはいます。そのため、これら通知を適切に分類さえできれば、重要な通知を見逃すことがなくなるはずです。

というわけで、Gmailを有効活用します。

概要

以下のような連携を実現します。

/img/posts/2018-05-19/github-notify.svg

要件

今回使用するのは以下の3つ。

  • GitHub
  • Gmail
  • Slack(Paid plan: Email Integrationを使用します)

設定手順

GitHub

通知の宛先を任意のGmailアドレスに設定します。GitHubでは通知用のメールアドレスを複数設定できるので、プライマリアドレスがGmailでない場合は、これを設定します。

Slack

最終的にSlackへメール経由で通知をさせたいので、通知用メールアドレスを取得します。なお、メールの受信をトリガに通知できるものであれば、Slackでなくともよいです。(今回はSlackでの連携を例にします。)

  1. Email Integration(https://slack.com/apps/A0F81496D-email)を開いて、[Add Configuration]をクリックします。
  2. 通知先のチャネルを選択して、[Add Email Integration]をクリックします。
  3. [Email Address]の項目に、ランダムなメールアドレスが発行、表示されるのでこれを控えておきます。

Gmail

Gmailのフィルタを設定して、重要な通知のみを抽出します。GitHubではその通知内容に応じて、メールのCCに以下のようなアドレスを設定するため、これを利用します。

メールアドレス 通知トリガー
Assign <[email protected]> アサインされたIssueやPRの更新。
Author <[email protected]> 作成したIssueやPRの更新。
Comment <[email protected]> コメントしたIssueやPRの更新。
Mention <[email protected]> メンションされたIssueやPRの更新。
Push <[email protected]> 通知対象になっているPRへのプッシュ。
Review requested <[email protected]> レビュアーに設定されたPRの更新。
State change <[email protected]> IssueやPRのオープン・クローズ ステータス更新。
Subscribed <[email protected]> ウォッチしているリポジトリのIssueやPRの更新。

これらのうち、見逃すと自分がブロッカーになってしまうような通知には、以下のようなものがあります。

  • Assign
  • Author
  • Mention
  • Review Requested

ここからGmailフィルタを組み立てると、以下のようになります。

{cc:[email protected] cc:[email protected] cc:[email protected] cc:[email protected]}

加えて、Slackの設定手順で控えた、ランダムなメールアドレスを[次のアドレスに転送する]に設定して、[フィルタを作成]をクリックします。

/img/posts/2018-05-19/gmail-filter.png

以上の手順で、GitHubからの重要な通知を、日常的に高い頻度で確認するSlackヘ連携し、見逃しを防止できるようになります。

avatar

Written by yo1000 | YO!CHI KIKUCHI
Loves 🌱 Spring, 🦢 Pelikan fountain pen and 🦁 FINAL FANTASY VIII