git - 是否能够 "break glass"并绕过 Github 分支保护以进行紧急修复?

标签 git github git-merge developer-tools

对于我们的项目,我们使用 Github 的 branch protection对所有更改强制执行至少 1 个审阅者,管理员也不异常(exception)。
然而,当我们需要紧急修复时,总有一天会到来。这将需要快速 merge 一个分支,这只有在其他人在附近进行审查时才会发生。但是如果周围没有人会发生什么?
我们需要绕过代码审查要求。
我们可以在 merge 时暂时禁用代码审查要求,但这是不可取的,因为无法了解何时完成,这是一个仅适用于管理员的解决方案。
我想要一种可审计的方式来做到这一点。对此的常用术语是“碎玻璃”,即。您正在打破玻璃并进行紧急 merge 和部署,因为这是紧急情况,并且没有人在附近检查您的代码。
有没有人想出一种方法来在 Github protected 分支上实现这一目标?

最佳答案

在我工作的地方,我们使用名为 Github Organization Manager 的程序管理我们的分支保护。 ,它基本上使用单个 git 存储库中的文件来管理我们存储库的设置。这允许在不授予管理员访问权限的情况下公开设置(并且组织者工具不允许用户执行诸如公开存储库或删除它们之类的操作)。还有其他类似的工具。
除了类似的事情,或者简单地授予用户对存储库的管理员访问权限之外,Github 没有内置的方法。如果您真的很担心,那么使用 Github API 构建“打破紧急情况”仪表板或 slackbot 并不会太困难,这些仪表板或 slackbot 可以删除分支保护甚至直接 merge pull 请求。

关于git - 是否能够 "break glass"并绕过 Github 分支保护以进行紧急修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64998944/

相关文章:

gitlab - 如何通过命令行创建 GitLab 合并请求

Git 推送在 Git Bash 中有效,但在 SmartGit 或 TortoiseGit 中无效

linux - 如何将凭证烘焙到 git 的 docker 镜像中?

git - 我可以在推送到 GitHub 时 stash 提交时间吗?

linux - 有没有办法在 git merge 后获取所有冲突的代码片段(不仅仅是文件)?

macos - 在 OSX 上,git merge 删除重命名大写的文件

android - 未知选项 `allow-unrelated-histories'

git - 您如何将 AppleScript 脚本置于版本控制之下?

git 管道告诉 checkout 的分支

github - 强制 Travis 构建特定的拉取请求或提交它错过的 SHA