Pull Request にマージ条件を書いて、レビュー渋滞を解消した話
こんにちは、ハコベル開発チームの坂東です。
最近、生成 AI の普及でコードの作成スピードが上がり、Pull Request の作成頻度も増えていませんか?私たちのチームでも、以前よりも Pull Request が多く作られるようになった一方で、レビューが追い付かずに渋滞が発生するケースが目立ってきました。
私たちの運用では Pull Request の作成者が自分でマージすることになっていますが、メンバーが増えたことで 「誰のレビューを何件集めれば良いのか」 というルールが曖昧になり、お見合い状態の Pull Request が溜まる状況でした。
この状況を改善するため、私たちは数ヶ月前から 「Pull Request のマージ条件を明示する」 という取り組みを導入し、その効果を実感しています。この記事では、導入の背景と実際の効果について紹介します。
なぜ Pull Request が渋滞するのか
具体的には、以下のような問題がありました。
- 軽微な修正でも「レビューお願いします」とだけ書かれ、いくつか approve がついてもマージされない
- 逆に影響範囲の広い変更が、十分にレビューされないまま作成者によりマージされる
- レビュアーも「どの Pull Request から確認すべきか」判断できず、優先順位がぶれる
解決策: テンプレートにマージ条件を書く
Pull Request テンプレートに、次のチェックボックスを追加しました。
### マージ条件(作成者が想定する承認数)
- [ ] 1 人から approve いただいたらマージします
- [ ] 過半数から approve いただいたらマージします
- [ ] チーム全員から approve いただいたらマージします
Pull Request 作成者はどれか 1 つにチェックを付け、レビュー依頼を送る運用としています。
これは作成者が「この変更にはどの程度のレビューが必要か」を事前に判断し、明示するためのものです。軽微な修正であれば 1 人、重要な機能変更であればチーム全員の承認を求めるなど、変更の影響範囲に応じて柔軟に設定できます。
なお、特定のメンバーにレビューしてほしい場合は、Pull Request の説明欄に @username
を追記してバイネームで依頼して構いません。テンプレートはそのままに、状況に応じて柔軟に上書きできるのがポイントです。
導入後の効果
数値で厳密に計測したわけではありませんが、導入直後からチームの空気が変わったことを実感しています。
-
マージが体感で早くなった
軽微な修正なら「今日中にマージされる」ことが当たり前に。Pull Request 一覧を開くと常に新しいものだけが並んでいる状態になりました。
数珠繋ぎの Pull Request が溜まることがなくなり、開発の流れがスムーズになりました。 -
放置 Pull Request のストレスが消えた
レビュー待ちの件数が目に見えて減り、「どれを優先すべきか」で悩む時間がほぼゼロに。 -
レビューに参加しやすくなった
マージ条件と承認人数が明示されたことで、「自分の approve だけで大丈夫かな?」という迷いが解消。メンバー全員が気軽にレビューをどんどん消化するようになりました。
導入のポイント
私たちが導入して感じた、マージ条件を明示する運用のポイントをいくつか紹介します。
-
承認者数を明確に書く
「1 人」「過半数」「全員」など具体的に示すと、レビュアーが迷わず行動できます。 -
定期的な見直し
チームの規模やメンバー構成が変わればマージの基準も変わります。この開発に関しては ○○ さんのレビューが欲しい、というようにルールを定期的に振り返り、チーム内での認識を揃えておきましょう。
まとめ
本記事では、私たちのチームにおける、Pull Request でマージ基準を明確にする取り組みについてご紹介しました。
これにより、Pull Request の渋滞を防ぎ、レビューの効率化とチームのコミュニケーション向上が期待できます。
もしあなたのチームでも、最近 Pull Request の渋滞が気になっているなら、ぜひ試してみてください。きっと効果を実感できるはずです。

「物流の次を発明する」をミッションに物流のシェアリングプラットフォームを運営する、ハコベル株式会社 開発チームのテックブログです! 【エンジニア積極採用中】t.hacobell.com//blog/engineer-entrancebook
Discussion
Branch protection rules を使わない理由とか知りたいです。
人力で決めるルールで迷わずマージできるようになるならブランチルールで必要な項目でしばっておいて、オートマージを設定したほうがはるかに早くなる気がするので。。。
rakiさん
コメントありがとうございます!
現状、私たちの場合は 1 つのリポジトリを複数チームで共同管理しており、チームごとにレビュー体制が微妙に異なるという、やや特有の事情があります。そのため Branch Protection Rules を一律に適用すると、いずれかのチームに過剰なコストが発生する懸念がありました。
また、PR の内容に応じて承認人数を調整したいというニーズも Rules だけでは満たせません。
そこで 最低 1 件のレビュー必須 という基本的なRulesは設定しつつ、追加の制約は PR テンプレートの「マージ条件」で “1 人/過半数/全員” を選択できるようにしています!