【发布时间】:2017-07-24 02:44:44
【问题描述】:
Github 不久前添加了分支保护,最近还添加了另一个要求审查的选项。
我尝试过要求审核和状态检查(管理员除外)并且喜欢这个工作流程。但它对我们的 CI/部署工具有负面影响。
例如,当我们发布新版本时,CI 环境中有一个自动化过程,它会增加 package.json 中的版本号,提交它,然后将其推送到存储库。有几个这样的过程,比如清理任务。
这些自动化流程不需要审核或通过状态检查(到那时,作为部署管道的一部分,状态检查已经运行了至少两次)。但是,启用分支保护后,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 标志?
【问题讨论】:
-
根据您的描述,它应该可以工作。我必须对此进行测试,但他们的支持可能更快。
-
你成功了吗?如何 ?谢谢
-
我做到了。我只能假设 CI 配置指向错误的存储库,因此用户没有对我认为的存储库的管理员访问权限,因为下次我尝试它时它工作正常(有人提到重置 CI 配置,唯一的原因是我可以看到它可能已经开始工作了)。
标签: git github jenkins continuous-integration teamcity