如何限制谁可以合并到 github repo 上的 master?

Posted

技术标签:

【中文标题】如何限制谁可以合并到 github repo 上的 master?【英文标题】:How to restrict who can merge to master on a github repo? 【发布时间】:2020-10-26 18:58:24 【问题描述】:

我已经在我的 Github 存储库上设置了 主分支检查(激活)的分支保护规则如下:

合并前需要对拉取请求进行审查 需要批准的审阅者:1 包括管理员 限制谁可以推送到匹配的分支

然后我的情况是,团队中至少有一个人必须批准 PR,然后才能将自己的 dev 分支合并到 master。

除了上述之外,我还想只选择一些有权合并已审核和批准的 PR。 不是每个人都可以访问该存储库。

可以这样设置吗?

【问题讨论】:

docs.github.com/en/github/administering-a-repository/… 文档中缺少什么? 我已经读过,它不是那么明确......也许“限制谁可以推送到匹配的分支”也意味着限制谁可以合并到匹配的分支?如果我启用这些人,他们是否能够在没有 PR 的情况下直接推送到 master? docs.github.com/en/github/administering-a-repository/… 添加最小验证器并设置 Require pull request review before merging。 【参考方案1】:

不,GitHub 不允许您限制谁可以执行合并。但是,如果您想在合并之前要求特定的一组人批准 PR,请使用 CODEOWNERS file 并在分支保护设置中合并之前需要代码所有者的批准。

例如,如果您希望核心团队审核所有更改,您可以在 CODEOWNERS 文件中使用它:

*  @my-org/core

【讨论】:

【参考方案2】:

我记得这些功能中至少有一半在 GitHub 的设置中。在你的情况下,只有批准者应该被添加为“合作者”,因为他们可以push。其他用户必须打开pull request 才能进行任何更改。

【讨论】:

以上是关于如何限制谁可以合并到 github repo 上的 master?的主要内容,如果未能解决你的问题,请参考以下文章

如何避免使用 API 延迟 github 拉取请求合并

如何将不同机器上的 2 个不相关的 svn 存储库合并到一个存储库中?

如何将分支合并到 github 中的 master 中?

将 git repo 合并到另一个 repo 的分支中

如何将zip文件上传到ruby中的github版本

在这种情况下,repo 中可能不存在合并 PR 的提交?