GitHub Enterprise:无SQL新提交时保留DBA的PR审批
解决GitHub Enterprise无SQL提交时保留DBA审批的配置方法
核心逻辑
GitHub默认会在PR有新提交时标记所有已有审批为“陈旧”,但我们可以通过分支规则的精细化配置,让只有当SQL文件发生变更时,才触发DBA审批的失效;无SQL变更的提交则保留DBA的原有审批。
具体操作步骤
1. 修改受保护分支的审批规则
打开仓库的设置页面,进入「Branches」→「Protected branches」,找到你要配置的目标分支(比如main),点击「Edit」按钮:
- 确认已勾选「Require approvals from code owners」
- 重点:不要勾选全局的「Dismiss stale pull request approvals when new commits are pushed」,转而使用下方的「Dismiss stale approvals for specific paths」来做精准控制
2. 添加SQL文件专属的陈旧审批规则
在「Dismiss stale approvals for specific paths」区域,点击「Add path」:
- 输入
*.sql(如果你的SQL文件集中在特定目录,就写src/sql/*.sql这类精准路径) - 选择对应的DBA团队作为该路径的CODEOWNER
- 这样设置后,只有当PR中
*.sql文件有新改动时,DBA的旧审批才会被标记为陈旧;没有SQL变更的提交,DBA的审批会一直有效
3. 确认CODEOWNERS文件配置正确
确保仓库.github/CODEOWNERS文件的规则无误:
*.sql @your-dba-team-name * @your-non-dba-dev-team-name
这里的@your-dba-team-name要替换成你实际的DBA团队标识,非SQL文件的规则保持不变。
注意事项
- 这个配置对设置之后的新提交生效,已经变成陈旧的审批需要重新走一次,之后再推无SQL的提交就会保留DBA审批
- 如果需要对非SQL变更也做类似的保留审批设置,同样可以添加对应的路径规则,比如针对
*.js设置只在JS文件变更时失效前端团队的审批
内容的提问来源于stack exchange,提问作者FMFF
相关产品推荐
相关产品推荐

