開発チームが大きくなってくると、「PRが上がったことに気づかなかった」「レビューなしでマージされてしまった」といった問題が起きがちです。
今回は、GitHubのPRをSlackに自動通知する方法と、マージ前に必ず2人のレビュー承認を必須にする設定を紹介します。どちらも10分程度で設定できるので、ぜひ試してみてください。
やりたいこと
今回設定するのは以下の2つです。
- GitHubの特定リポジトリでPRが作成されたら、Slackの特定チャンネルに通知する
- PRは2人以上のレビュー承認がないとマージできないようにする
この2つを組み合わせることで、PRの見落としを防ぎつつ、コードの品質も担保できる仕組みが作れます。
1. GitHub公式SlackアプリでPR通知を設定する
事前準備:SlackにGitHubアプリをインストール
まずはSlackのワークスペースにGitHub公式アプリをインストールします。Slackの「App」から「GitHub」を検索してインストールしてください。

インストール時にGitHub側でアプリの権限設定が求められます。Organization配下のリポジトリを連携する場合は、Organization Ownerの権限が必要になるので注意してください。

もし「You do not have permission to modify this app」というエラーが表示された場合は、Organization Ownerに設定を依頼してください。
Slackチャンネルでリポジトリを購読する
GitHubアプリの準備ができたら、通知を受け取りたいSlackチャンネルで以下のコマンドを実行します。
/github subscribe オーナー名/リポジトリ名

これで、issues、pulls、commits、releases、deploymentsの通知がこのチャンネルに届くようになります。
PR通知だけに絞る
デフォルトだと色々な通知が来て少しうるさいので、PR関連だけに絞りましょう。以下のコマンドで不要な通知をオフにします。
/github unsubscribe オーナー名/リポジトリ名 issues commits releases deployments

これでPRの作成・更新・マージ・クローズの通知だけが届くようになりました。
設定内容を確認したい場合は、以下のコマンドで確認できます。
/github subscribe list
2. PRに2人のレビュー承認を必須にする
次に、GitHub側でブランチ保護ルールを設定して、2人のレビュー承認がないとマージできないようにします。
Branch Rulesetの設定画面を開く
GitHubのリポジトリページから、以下の順番で設定画面を開きます。
Settings → Rules → Rulesets → New ruleset → New branch ruleset

基本設定
まずはRulesetの基本情報を設定します。
| 項目 | 設定値 |
|---|---|
| Ruleset Name | main-protection(任意の名前でOK) |
| Enforcement status | Active |
対象ブランチを指定する
「Target branches」セクションで、保護したいブランチを指定します。

「Add target」をクリックして、「Include default branch」を選択すれば、mainブランチが対象になります。
2人承認必須のルールを設定する
「Rules」セクションで、「Require a pull request before merging」にチェックを入れます。
チェックを入れると詳細オプションが展開されるので、以下のように設定してください。

| 項目 | 推奨設定 | 説明 |
|---|---|---|
| Required approvals | 2 | 承認必要人数。今回の要件はこれ。 |
| Dismiss stale pull request approvals when new commits are pushed | ON | 承認後に新しいコミットがpushされたら、承認をリセットする |
| Require approval of the most recent reviewable push | ON | 最後にpushした人以外の承認を必須にする(自作自演防止) |
| Require conversation resolution before merging | ON | レビューコメントがすべて解決されるまでマージ不可 |
特に「Dismiss stale pull request approvals」は重要です。これがOFFだと、承認をもらった後にこっそりコードを変更してマージできてしまいます。
その他の推奨設定
ついでに、以下のルールもONにしておくと安心です。
| 項目 | 推奨設定 | 説明 |
|---|---|---|
| Restrict deletions | ON | mainブランチの削除を防止 |
| Block force pushes | ON | 強制プッシュを禁止(履歴改変を防止) |
保存して完了
設定が終わったら、画面下部の「Create」ボタンをクリックして保存します。
動作確認
設定が完了したら、テスト用にPRを作成してみましょう。
- 新しいブランチを作成して、適当にファイルを追加
- mainブランチに向けてPRを作成
- Slackに通知が届くことを確認
- 1人目がApprove → まだマージボタンが押せないことを確認
- 2人目がApprove → マージボタンが有効になることを確認


まとめ
今回は、GitHub PRのSlack通知と2人レビュー必須の設定方法を紹介しました。
どちらも一度設定してしまえば、あとは自動で機能してくれます。チーム開発では「仕組みで解決する」のが大事なので、まだ設定していないリポジトリがあればぜひ導入してみてください。

コメント