【发布时间】:2020-09-30 18:10:21
【问题描述】:
我有一个团队在几个 GitHub 存储库中工作。每个存储库都有负责人(维护者),他们对拉取请求进行最终审查,如果可以,则将其合并到 master。所有其他成员都是此存储库的开发人员和审阅者(但可能在另一个存储库中担任维护者角色)。工作流程是:
- Member1 提交 PR
- Member2 评论 PR
- 维护者审查和合并 PR
为了要求 PR 审核,我为 master 启用了“分支保护规则”并选中了“合并前需要拉取请求审核”。但是当团队成员批准 PR 时,它不会变成“绿色”并且维护者无法合并它,为了使 PR 批准“绿色”,我将团队成员的访问权限更改为“写入”。但是现在每个成员都可以在没有维护者参与的情况下合并拉取请求:
- Member1 提交 PR
- Member2 评论 PR
- Member1 o Member2 合并 PR(如果他们有写入权限)
此外,写入访问权限提供了关闭工单和拉取请求的能力。当然,我们可能有一个详细的协议,即某人是维护者,只有这个人可以合并某个特定 repo 中的 PR,但在这种情况下,我看不出 GitHub 如何帮助实现这个“分支保护规则”。
是否可以使用 GitHub 配置自动执行此工作流程?我只想将每个存储库中的“读取”权限授予开发人员和审阅者,并将“维护”角色授予维护者。
我看到了一些可能的解决方法,但需要手动实施:
- 使用 GitHub 操作:在 PR 批准事件上触发 GitHub 操作,检查批准者是否是团队成员并具有“读取”权限,从操作中批准 PR。
- 将简单的托管服务器与机器人用户一起使用:将机器人用户添加到具有写入权限的存储库,侦听服务器上的 webhook,并使用团队成员批准 webhook 上的机器人令牌通过 API 批准 PR。
也许我错过了一些东西,我可以不编写代码而只使用 GitHub 来做到这一点?这似乎是很常见的做法,我不明白为什么它没有在 GitHub 端实现。
【问题讨论】:
标签: github permissions pull-request