GitHub Code Coverage как merge protection: сначала контракт, потом процент
Что произошло
GitHub 30 июня 2026 года объявила merge protection для pull requests через GitHub Code Coverage. PR можно блокировать, если он не проходит пороги coverage или code quality.
Почему это важно
Главное изменение в том, что coverage становится частью review flow, rulesets и branch protection, а не только внешним отчетом.
Сигнал сообщества
Сообщество давно спорит о thresholds: высокая coverage не доказывает качество, но неконтролируемые падения создают долг тестирования.
Операционный эффект
Лучше разделять total coverage и diff coverage. Первая показывает здоровье репозитория, вторая отвечает за новый непокрытый код в PR.
Чеклист
Начните с soft fail, сохраните baseline main branch, явно исключите generated code и migrations, назначьте владельцев исключений.
Риски
Риски: ложная уверенность и медленный CI. Gate не заменяет качественные assertions, integration tests и человеческий 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