Slack と GitHub を連携してチーム開発を効率化する方法
Slack に GitHub を連携することで、リポジトリの更新をリアルタイムで把握できます。初回セットアップから通知設定のカスタマイズまで、詳しく解説します。
Slack と GitHub を連携してチーム開発を効率化する方法
Slack と GitHub を連携することで、チーム全体でリポジトリの更新をリアルタイムに共有できます。プルリクエストのレビュー依頼や、デプロイ完了通知など、開発の重要なイベントを見逃さなくなります。この記事では、Slack と GitHub の連携方法を詳しく解説します。
はじめに
チーム開発において、GitHub のイベント(プルリクエスト、Issue、デプロイなど)をリアルタイムで把握することは非常に重要です。しかし、GitHub の通知だけでは見逃してしまうことも多いのではないでしょうか。
Slack と GitHub を連携することで、以下のようなメリットが得られます:
- リアルタイム通知: プルリクエストやレビューの通知がSlackに届く
- チーム全体での情報共有: 全員が同じ情報を見られる
- 効率的なレビュー: Slack上でプルリクエストの確認とレビュー依頼が可能
- デプロイ状況の把握: GitHub Actions のワークフロー結果が通知される
セットアップ手順
1. Slack に GitHub を連携(初回のみ)
まず、Slack ワークスペースに GitHub アプリをインストールします。
- https://slack.github.com/ にアクセス
- 「Add to Slack」ボタンをクリック
- Slack ワークスペースを選択してログイン
- GitHub アプリのアクセス権限を確認して承認
この手順は、Slack ワークスペースごとに初回のみ実施します。
2. GitHub に Slack の GitHub Apps をインストール(初回のみ)
次に、GitHub 側でも連携を承認します。
- GitHub Apps の設定ページにアクセス
- Slack の GitHub Apps を見つける
- 「Configure」をクリック
- 連携したいリポジトリを選択
- 特定のリポジトリのみ選択可能
- すべてのリポジトリを選択することも可能
Organization のリポジトリを連携する場合は、Organization の管理者権限が必要です。
3. チャンネルに GitHub を招待
連携したいSlackチャンネルに、GitHub ボットを招待します。
/invite @GitHub
チャンネルで上記のコマンドを実行すると、GitHub ボットがチャンネルに参加します。
4. リポジトリイベントを追加
最後に、どのリポジトリのどのイベントを通知するかを設定します。
基本的な購読設定
/github subscribe owner/repository
owner/repository の部分を、実際のリポジトリ名に置き換えてください。
例:/github subscribe microsoft/vscode
通知イベントのカスタマイズ
デフォルトでは、以下のイベントが通知されます:
- Issues(新規作成、クローズ)
- Pull Requests(新規作成、クローズ、マージ)
- Commits(デフォルトブランチへのプッシュ)
特定のイベントのみ通知したい場合は、以下のように指定します:
/github subscribe owner/repository workflows reviews comments
主な通知イベント一覧
| イベント | 説明 |
|---|---|
issues | Issue の作成・クローズ・再オープン |
pulls | プルリクエストの作成・クローズ・マージ |
commits | デフォルトブランチへのプッシュ |
releases | リリースの公開 |
deployments | デプロイメントの状態変更 |
workflows | GitHub Actions のワークフロー実行結果 |
reviews | プルリクエストのレビューコメント |
comments | Issue・プルリクエストへのコメント |
branches | ブランチの作成・削除 |
commits:* | すべてのブランチへのプッシュ |
実用的な設定例
チーム開発向けの推奨設定
本番環境やステージング環境のリポジトリには、以下の設定がおすすめです:
/github subscribe your-org/production-app workflows reviews comments deployments
この設定により、以下が通知されます:
- GitHub Actions の実行結果(テスト、ビルド、デプロイ)
- プルリクエストのレビューリクエストとコメント
- 一般的なコメント
- デプロイメントの状態
通知の削除
特定のイベント通知を削除したい場合:
/github unsubscribe owner/repository workflows
リポジトリ全体の通知を削除したい場合:
/github unsubscribe owner/repository
現在の購読状況を確認
/github subscribe list
現在のチャンネルで購読しているリポジトリと通知設定の一覧が表示されます。
便利な機能
1. Slack 上でプルリクエストを操作
GitHub の通知に表示されるボタンから、以下の操作が可能です:
- プルリクエストの確認
- レビューの投稿
- マージ(権限がある場合)
- クローズ
2. リマインダー機能
レビュー待ちのプルリクエストを定期的にリマインドする設定:
/github subscribe owner/repository reviews
これにより、レビューが必要なプルリクエストが Slack に通知され、レビュー忘れを防げます。
3. GitHub アクションの結果を通知
CI/CD パイプラインの結果を Slack で確認:
/github subscribe owner/repository workflows
テストの失敗やデプロイの成功など、重要なイベントをリアルタイムで把握できます。
トラブルシューティング
Q: 通知が届かない
A: 以下を確認してください:
- GitHub ボットがチャンネルに招待されているか
- リポジトリの購読設定が正しいか(
/github subscribe listで確認) - GitHub Apps のインストール時に、該当リポジトリが選択されているか
Q: 通知が多すぎる
A: 通知イベントを絞り込みましょう:
/github subscribe owner/repository workflows reviews
不要なイベント(例:commits)を削除することで、重要な通知のみに絞れます。
Q: Organization のリポジトリが連携できない
A: Organization の管理者権限が必要です。管理者に連携を依頼してください。
ベストプラクティス
1. チャンネルごとに適切な通知を設定
- 開発チャンネル: プルリクエスト、レビュー、コメント
- デプロイ通知チャンネル: ワークフロー、デプロイメント、リリース
- Issue 管理チャンネル: Issue のみ
2. 重要なイベントに絞る
すべてのイベントを通知すると、情報過多になります。チームにとって本当に必要な通知のみを設定しましょう。
3. 定期的に設定を見直す
チームの成長や開発フローの変化に合わせて、通知設定を見直すことが重要です。
まとめ
Slack と GitHub の連携により、チーム開発の効率が大幅に向上します。
主なメリット:
- リアルタイムでリポジトリの更新を把握
- レビュー依頼やコメントを見逃さない
- CI/CD の結果を即座に確認
- チーム全体での情報共有が容易に
適切な通知設定を行うことで、重要な情報を見逃さず、かつ通知過多にならないバランスを保つことができます。ぜひ、今回の設定を試してみてください。