2017-03-03 43 views
2

Github在一段时间后增加了分支保护,并且最近又增加了一个用于需要评论的选项。如何让自动CI过程推动提交与Github分支保护?

我试过了需要评论和状态检查(管理员除外)并喜欢工作流程。但它对我们的CI /部署工具有负面影响。

例如,当我们发布一个新版本时,CI环境中有一个自动化进程,它在package.json中增加版本号,提交并推送到版本库。有几个这样的进程,比如清理任务。

Example branch protection for master

这些自动化的过程并不需要审查或传递状态检查(状态检查已经运行至少两次通过该点的部署管线的一部分)。但启用分支保护后,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上的拉取请求以及“使用您的管理员权限合并此拉取请求”旁边的复选框。 --usemyadminprivilegestopushthis是否有CLI标志?

+0

从你所描述的,它应该工作。我不得不测试这个,但他们的支持可能更快。 – osowskit

+0

您是否设法完成这项工作?怎么样 ?谢谢 – sergiofbsilva

+0

我做到了。我只能假设CI配置指向错误的回购,所以用户没有管理员访问我认为的回购,因为它下次我尝试它时工作得很好(有人提到重置CI配置,只有原因我可以看到它可能已经开始工作)。 – morewry

回答

1

我没有真正发现我为什么会失败;后来我无法用相同的配置再现问题。

第二天,我所描述的是什么工作。

  1. 保护分支

  2. ,但不包括评论/状态检查管理员

  3. 确保您的CI “用户” 是管理员

的妙处这是Github用户界面仍然鼓励管理员等待状态检查和评论。在拉取请求工作流程中很有用。但是,CLI的使用除了无法强制推送或删除外,不会受到管理员的影响 - 所需的结果。

如果任何人有关于仅需要写入而不是管理员访问的设置提示,或者有关如何在多个请求中跟踪状态/检查检查成功的信息,请分享它们。 (我相信我的情况CI配置指向错误的回购。它开始工作的第二天,有人提到重置配置,但不幸的是我不能确认这适用于每一个故障在我们的日志中。)