GitHub Code Coverage merge protection: 数字より先にロールアウト契約を決める
何が起きたか
GitHubは2026年6月30日、GitHub Code Coverageによるpull request merge protectionを発表しました。PRがcoverageまたはcode qualityのthresholdを満たさない場合、mergeを止められます。
なぜ重要か
重要なのは、coverageが外部ダッシュボードの参考値ではなく、rulesetやbranch protectionに接続されるreview上の条件になる点です。
コミュニティの論点
開発者コミュニティではcoverage thresholdへの懸念が長くあります。高い数字は良いテストを保証しませんが、coverage低下を放置するとテスト負債は増えます。
運用への影響
実務ではtotal coverageとdiff coverageを分けるべきです。前者は長期的な健康状態、後者は今回の変更が未検証コードを増やしたかを示します。
チェックリスト
まずsoft failで観察し、main branchのbaselineを保存し、generated codeやmigrationを明示的に除外し、例外承認者を決めます。
リスク
リスクはfalse confidenceとCIの遅さです。coverage gateはassertion品質、integration test、人間のreviewを置き換えるものではありません。
Rollout checklist
• Start with a baseline, not an ideal target.
• Separate total coverage from diff coverage.
• Document exclusions and exception approvers.
• Use soft fail before hard enforcement.
出典
- GitHub Changelog: GitHub Code Coverage merge protection for pull requests
- GitHub Docs: Setting pull request thresholds for code quality and coverage
- GitHub Docs: Setting up code coverage for your repository
- GitHub Docs: About GitHub Code Quality
- GitHub Docs: About status checks
- GitHub Docs: About protected branches
- GitHub Docs: Interpreting code quality results