GitHub - 提交者阻止合并 PR

标签 github merge pull-request circleci protection

我正在寻找一种通过 GitHub 设置或 CircleCI 设置防止参与 PR(创建 PR 或进行提交)的人能够合并 PR(甚至批准它)的方法。
到目前为止,我拥有一个需要批准的分支的保护,但在批准后,我作为 PR 创建者和提交者仍然能够合并。

最佳答案

你需要能够

prevent the person that is involved in PR (create PR or make a commit) to be able to merge PR (or even approve it)


已创建 PR 的贡献者默认无法在 GitHub 中批准或请求更改 ,所以这已经处理好了。
由于 Pull Request 是 GitHub 功能,PR 合并目前只能通过 2 种方式阻止
  • 使用 GitHub 的设置
  • 使用预接收 Hook (仅适用于 GitHub Enterprise)

  • 使用 GitHub 的设置 ,您只能通过要求拉取请求审查、状态检查通过、签名提交或线性历史记录来阻止合并,如分支保护设置下所示。
    enter image description here
    或通过 允许合并提交,压缩合并 rebase 合并 如 repo 设置下的合并按钮部分所示
    enter image description here
    如果您在 GitHub Enterprise 上,则可以使用预接收 Hook ( documentation )如下所示,并确保阻止自合并 PR(例如 here )
    if [[ "$GITHUB_VIA" = *"merge"* ]] && [[ "$GITHUB_PULL_REQUEST_AUTHOR_LOGIN" = "$GITHUB_USER_LOGIN" ]]; then
        echo "Blocking merging of your own pull request."
        exit 1
    fi
    
    exit 0
    
    除了上述之外,目前没有其他方法可以阻止 GitHub 上的自合并 PR。并且使用 CircleCI 或任何其他 CI 工作流程只能阻止所有人(如果您选择在 GitHub 上进行状态检查的要求)或任何人的合并,因为它无法控制 PR 合并按钮。

    关于GitHub - 提交者阻止合并 PR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62601595/

    相关文章:

    git - 为什么在 GitHub 上导入大量资源失败?

    mongoDb:找不到索引来验证连接字段是否唯一

    c# - 合并两个列表并组合对象值

    git - 强制执行代码审查并保持集成分支原始状态的工作流(git、Stash、TeamCity)

    git - 我如何在 AzureDevOps 存储库中实现/设置 GitFlow,并在 master 和 develop 上使用 PR 分支策略?

    jenkins - PR 合并意味着什么?

    Git 嵌套 repo

    ruby-on-rails - Git 忽略供应商文件夹

    git - 如何在 GIT 上锁定 odt 文件?

    r - 合并不同时间间隔的xts对象