🔔

【Slack + GitHub連携】issueコメントやプルリク通知をチャンネルに流して開発効率を加速させる

2020/12/13に公開

GitHubの通知、見てますか?

一刻も早くメールの時代を終わらせたいので、GitHubの通知をSlackに投げるようにしました。GitHubのWebページにも通知機能はありますが、雑然としておりまったく見る気が起きません。


Improving notifications for everyone - The GitHub Blog

以前に比べれば色々と改善されているものの…個人的にはどうにも取っつきづらい印象です。

昨今では開発者間のコミュニケーションツールとしてSlackがスタンダードになっている組織も多いと思われます。そんなわけで「GitHubの通知をSlackに流すと開発効率アップするよ!」というご提案です。

諸々の設定を行うと、GitHub上の操作内容がSlackチャンネルに流れるようになります。

以下、手順をご紹介していきます。

Slackチャンネルを作る

既存のSlackチャンネルに流してしまうと会話がゴチャつくので、GitHub通知専用のチャンネルを作ります。

チャンネル名のプレフィックスにgitnotificationなどを付与しておくと分かりやすくなると思います。

SlackにGitHubアプリを追加する

slack.github.comにアクセスし「Add to Slack」をクリックし、対象ワークスペースにGitHubアプリをインストールします。

通知を使用するチャンネルを選んで「Install」をクリック。実際のチャンネル紐付けは後述の手順で行うため、ここでは「All Public Channels」を選択しておくと良いでしょう。

ワークスペースにGitHubアプリが追加されます。

GitHubアカウントとの接続を行う

続いてGitHubアカウントとの接続を行います。以下コマンドで認証ワークフローを呼び出します。

/github signin

「Connect GitHub account」をクリック。

Web画面が開くので、対象ワークスペースを確認し「Connect GitHub account」をクリック。

これでGitHubアカウントとSlackワークスペースの接続連携が完了です。

リポジトリの購読を開始する

GitHubリポジトリの通知を流したいチャンネルに移動し、以下コマンドを叩きます。

/github subscribe owner/repo
  • owner:オーナー名
  • repo:リポジトリ名

これで購読開始となります。

通知をカスタマイズする

デフォルトで通知される機能は以下のとおり。

  • issues - Opened or closed issues
  • pulls - New or merged pull requests, as well as draft pull requests marked "Ready for Review"
  • commits - New commits on the default branch (usually main)
  • releases - Published releases
  • deployments - Deployment review notifications and Deployment status updates.

以下の機能はデフォルトでは通知されません。

  • workflows - Actions workflow run notifications
  • reviews - Pull request reviews
  • comments - New comments on issues and pull requests
  • branches - Created or deleted branches
  • commits:* - All commits pushed to any branch
  • +label:"your label" - Filter issues, pull-requests and comments based on their labels.
  • discussions - Discussions created or answered

コメントやブランチ操作など、地味に重要な通知してほしい機能が省かれているため、手動で購読追加します。

通知の追加

通知の追加は、以下コマンドで行います。

/github subscribe owner/repo [機能]

デフォルトで通知されない機能を必要に応じて追加しましょう。

/github subscribe owner/repo reviews,comments,branches,commits:all

This channel will get notifications from のメッセージに続き、現在通知が有効となっている機能が羅列されます。

これでGitHubリポジトリに行われた操作が、Slackチャンネルに流れるようになります。

メンバーが現在どのような作業を行っているかなど、一連の流れが追いやすいので大変重宝します。

フィルタリングも可能

ラベルフィルターを使用して、通知イベントをフィルタリングすることもできるようです。細かな設定を行いたい場合は公式ドキュメントを見てフィルター作成すると良いでしょう。
https://github.com/integrations/slack#filters

通知の削除

特定機能の通知解除は以下コマンドで行えます。

/github unsubscribe owner/repo [機能]

通知が不要な機能はこれで削除できます。

有効な通知の確認

現在通知がアクティブな機能の一覧は以下コマンドで確認できます。

/github subscribe list features

Slack連携はいいぞ

直近の操作ログを確認するのにも便利ですし、issueコメントやプルリクレビューのやりとりをSlack上で検索できるのが最大の魅力ですね。

開発が活発なリポジトリでは頻繁にログが流れてきますので、通知専用チャンネルを作っておくことをおすすめします。チーム開発でのコミュニケーションツールとしてSlackを使われている方は、ぜひGitHubと連携して開発効率をアップしていきましょう。

最近はGitHub Actionsを使う方法もあるようなので、色々カスタマイズしたい方はこちらを試してみるのも良さそうです。
https://zenn.dev/shonansurvivors/articles/fab832f7bfa8cebac24f

参考

Easy Easy (完全に理解した Talk)

Discussion