我正在寻找一种通过 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 的设置 ,您只能通过要求拉取请求审查、状态检查通过、签名提交或线性历史记录来阻止合并,如分支保护设置下所示。
或通过 允许合并提交,压缩合并 或 rebase 合并 如 repo 设置下的合并按钮部分所示
如果您在 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/