GitHub仓库如何设置合并前审批规则 防止代码未评审就被提交
GitHub组织仓库强制代码合并审批方案
核心配置:分支保护规则
这是避免未评审代码合并的最直接方案,配置完成后所有符合规则的分支都无法直接推送代码,必须走PR审批流程才能合并:
- 进入目标仓库的
Settings页面,在左侧菜单栏找到Code and automation分类下的Branches选项 - 点击
Add branch protection rule,在Branch name pattern处填写需要保护的分支匹配规则,比如填main仅保护主分支,填*可保护仓库全部分支 - 勾选
Require a pull request before merging,禁用直接推送到保护分支的权限 - 按需设置审批人数要求:
- 需要全部所有者审批的话,将
Required number of approvals before merging设置为3 - 需要多数所有者审批的话,设置为2即可
- 需要全部所有者审批的话,将
- 勾选
Dismiss stale pull request approvals when new commits are pushed,PR获得审批后如果有人新增提交,原有审批会自动失效,需要重新评审 - 勾选
Require review from Code Owners,可强制要求代码对应的所有者完成审批;如果还未配置Code Owners,可在仓库根目录新建CODEOWNERS文件,填写* @你的组织名/所有者组名即可指定整个仓库的审批责任人 - 最后勾选
Do not allow bypassing the above settings,即使是组织/仓库管理员也无法跳过上述规则,避免特权账号误操作
组织级统一管控(避免单仓库配置遗漏)
如果组织下辖多个需要管控的仓库,可直接配置组织级规则,一次性覆盖所有目标仓库:
- 进入组织的
Settings页面,找到Code security and analysis分类下的Repository rules选项 - 新建组织级规则集,选择需要应用的仓库范围,规则内容和上述分支保护规则完全一致即可
- 收紧成员权限:普通开发者仅分配
Write权限,不要开放Maintain或Admin权限,避免有人私自修改仓库的保护规则
可选补充校验
- 可在PR流程中添加强制状态检查,要求代码必须通过单元测试、代码规范扫描后才能进入审批环节,进一步降低不合规代码合并的概率
- 开启组织审计日志,定期排查是否有绕过规则的操作尝试,及时调整权限配置
内容的提问来源于stack exchange,提问作者XnaijaZ
相关产品推荐
相关产品推荐

