我们如何在 GitHub 中强制执行强制审查,但仍允许从 CI 发布 Maven?

Posted

技术标签:

【中文标题】我们如何在 GitHub 中强制执行强制审查,但仍允许从 CI 发布 Maven?【英文标题】:How can we enforce mandatory reviews in GitHub but still allow Maven release builds from CI? 【发布时间】:2018-04-27 09:58:35 【问题描述】:

我们希望在 GitHub Enterprise 2.10 中对拉取请求使用强制代码审查(使用存储库受保护分支设置中的“在合并之前要求拉取请求审查”功能)。

但是,当我们启用此功能时,Maven 发布构建会失败,因为发布插件会尝试使用运行 TeamCity 发布构建的用户的凭据将新的 SNAPSHOT 版本推送到存储库。

有没有人想出一种适用于此的方法?我们的要求是:

需要对正常提交/拉取请求进行代码审查 允许自动发布版本提交更新的 POM 版本 所有提交都由特定的非共享用户帐户完成

【问题讨论】:

您找到解决方案了吗?我刚刚遇到了同样的问题。这是一个非常标准的工作流程,并且可以使用 Atlassian 的 BitBucket 轻松实现,所以我想 GitHub 也必须为此提供某种钩子? 鉴于发布插件使用标准 git 命令,我不确定您能否满足所有要求。我们有这个问题,我们唯一的出路是给 CI 帐户 GH 管理员角色,以跳过分支保护。 【参考方案1】:

我在一个相关问题上找到了这个答案:https://***.com/a/47006088

我的印象是,如果您不选中“包括管理员”复选框,那么您可以将存储库所有者与发布插件一起使用。折衷方案是,您将依靠作为存储库所有者的开发人员的纪律来避免跳过审查过程。

【讨论】:

以上是关于我们如何在 GitHub 中强制执行强制审查,但仍允许从 CI 发布 Maven?的主要内容,如果未能解决你的问题,请参考以下文章

在 Github 提交中强制执行 PEP-8'ish 格式

如何在预检请求中强制进行身份验证?

代码审查作业

如何控制/强制 iOS 系统音量 [cordova]

结对编程之代码审查

如何在不确认的情况下强制 cp 覆盖