分支保护规则是什么
对主干等关键分支设置保护规则:要求通过评审请求合并、设定必需评审人数、要求状态检查通过,必要时要求线性历史或签名提交。它的作用是让「绕过评审直接推送」在机制上无法完成,而不是依赖团队自觉。
基本信息
| 配置入口 | 仓库设置中的分支保护规则页面 |
|---|---|
| 常见规则 | 必须通过评审请求合并、必需评审数、必需状态检查、签名提交、线性历史 |
| 豁免设置 | 可允许管理员绕过,范围越小越好 |
| 生效范围 | 规则可按分支名或通配模式精确匹配 |
| 配套机制 | 与代码所有者评审、合并队列叠加使用 |
典型使用场景
- 团队要求所有改动都经过他人评审
- 主干需要保持随时可发布的状态
- 关键分支不允许任何人直接推送
- 要求流水线检查通过才允许合并
- 合规与审计要求变更过程可追溯
规则组合示意
规则组合示意
# 在分支保护规则页面勾选以下项目(示意)
# 合并前必须提交评审请求
# 必需批准数:1 到 2 人
# 必需状态检查:构建与测试通过
# 线性历史(可选)
# 管理员绕过(按团队情况决定)
gh api repos/{owner}/{repo}/branches/main/protection | head -40 # 查看当前规则规则与作用
| 规则 | 作用 |
|---|---|
| 必需评审请求 | 禁止向主干直接推送 |
| 必需批准数 | 保证至少有一位他人看过改动 |
| 必需状态检查 | 流水线未通过就无法合并 |
| 线性历史 | 主干保持直线,便于回溯与二分 |
规则拦机器、评审质量靠人:两者配套才能守住主干质量,仅有规则并不能阻止低质量改动被合入。
状态检查与流水线的作业名绑定,作业改名后旧规则会失效,调整流水线时要同步检查分支保护设置。