如何允许自动CI流程使用Github分支保护推送提交?

Github不久前又添加了分支机构保护,最近又添加了另一个需要审核的选项.

我尝试过要求审核和状态检查(管理员除外)并喜欢工作流程.但它对我们的CI /部署工具产生了负面影响.

例如,当我们发布新版本时,CI环境中有一个自动化过程,它会增加package.json中的版本号,提交它并将其推送到存储库.有一些这样的过程,例如清理任务.

《如何允许自动CI流程使用Github分支保护推送提交?》

这些自动化流程不需要审核或传递状态检查(此时,状态检查已至少作为部署管道的一部分运行了两次).但是,在启用分支保护后,CI“用户”无法推送.

remote: error: GH006: Protected branch update failed for refs/heads/master. 
remote: error: Required status check "default" is expected. At least one approved review is required

以前我们的CI“用户”具有“写入”权限.我尝试给它“管理员”权限我正在尝试这个,但这显然是不够的;即使作为管理员,CI“用户”也无法推动.

在上图中,我尝试删除“评论”,希望状态检查没有进一步的工作.不!

我理想的是,CI“用户”可以免除这些要求.它看起来不像是一个功能.这可能意味着我唯一的另一个选择是取消大部分保护措施,包括我想要的一些保护措施.

但是我可能会对现有的CI管道进行一些更新或更改 – 或者我可以创建一些保护配置 – 这将产生以下结果:

>人类用户在合并或推送之前会看到需要进行审核和状态检查. (校验)
>只有维护者和CI可以直接推送到分支机构. (校验)
>管理员可以根据具体情况覆盖要求. (校验)
> CI可以直接推送到分支机构而无需进行审核或等待状态检查. (需要帮忙)

任何人都做了类似的设置或知道如何绕过CI“用户”被阻止?很明显,CI“用户”无法在Github.com上物理导航到拉取请求,并且“使用您的管理员权限合并此拉取请求”旁边的复选框.是否有一个CLI标志–usemyadminprivilegestopushthis?

最佳答案 我实际上并没有发现为什么我会失败;我以后无法使用相同的配置重现问题.

第二天,我所描述的是有效的.

>保护分支机构
>但不要包括审核/状态检查的管理员
>确保您的CI“用户”是管理员

关于这一点的好处是Github UI仍然鼓励管理员等待状态检查和评论.在拉取请求工作流程中很有用.但是,除了无法强制推送或删除之外,CLI使用不受影响 – 所需的结果.

如果有人提供只需要写入而不是管理员权限的设置提示,或者有关如何跨多个请求跟踪状态/审核检查成功的信息,请分享它们.

(我相信在我的情况下CI配置指向错误的回购.它在第二天开始工作,有人提到重置配置,但遗憾的是我无法确认这适用于我们日志中的信息中的每一个故障.)

点赞