如何在GitHub所有分支中仅允许特定人员推送至.github/workflows目录
限制GitHub仓库中.github/workflows目录的推送权限
要解决开发者随意推送自定义工作流的问题,你可以通过以下两种核心方式实现目录级别的权限管控:
方法1:分支保护规则+CODEOWNERS组合管控
配置分支保护规则
- 进入仓库的「Settings」→「Branches」→「Branch protection rules」,点击「Add rule」
- 指定需要保护的核心分支(比如
main、master或develop) - 勾选「Require pull request reviews before merging」,强制所有代码变更必须通过PR合并
- 勾选「Require review from Code Owners」,确保
.github/workflows目录的变更必须经过指定人员审核
创建CODEOWNERS文件
- 在仓库根目录新建
.github/CODEOWNERS文件 - 添加规则:
这条规则会让指定的人员/团队成为.github/workflows/ @指定用户名1 @指定用户名2 @团队名称.github/workflows目录的所有者,任何该目录下的变更PR都需要他们的审批才能合并
- 在仓库根目录新建
方法2:直接限制分支推送权限
如果需要更严格的管控(禁止非指定人员直接推送分支,只能提PR):
- 在分支保护规则中,勾选「Restrict who can push to matching branches」
- 在输入框中添加允许直接推送的人员或团队,只有这些主体能直接向保护分支推送代码,其他开发者必须通过PR提交变更
注意事项
- 组织级仓库建议用团队管理权限,比单独添加用户名更便于后续维护
- 确保分支保护规则覆盖所有核心开发分支,避免遗漏管控
- 若部分开发者拥有仓库「Maintainer」权限,需确认他们是否在允许推送的列表中,避免权限冲突
内容的提问来源于stack exchange,提问作者sharan
相关产品推荐
相关产品推荐

