0

我一直在使用 Github API,如果提交状态被标记为失败,则不允许合并拉取请求。

我遇到了这个问题,如果我有 5 次提交(最近 - 租约)

  • commit1:状态-失败
  • commit2:状态-失败
  • commit3:状态-失败
  • commit4:状态-失败
  • commit5:状态-成功

只要最近的 PR 提交在不应该的情况下具有“成功”状态,就允许合并。

任何失败/成功的组合都不允许合并,只要最近的提交也是失败的。

4

1 回答 1

0

大多数 CI 系统采用的方法是他们将拉取请求作为一个整体进行测试,并且只要拉取请求现在可以正常工作(即,正在通过),那么拉取请求是可以接受的。

然而,在像 Git 这样的项目中,每个提交都必须独立通过测试以实现平分。如果您的项目是其中之一,那么您需要显式配置您的 CI 系统以测试分支中的每个提交。大多数系统允许您查询基础或目标分支,然后您可以调用git rebase -x "BUILD-AND-RUN-COMMAND" $BASE_BRANCH$BASE_BRANCH根据您的 CI 系统设置)以验证每个提交是否独立通过。

编辑:如果您尝试实现一个每次提交都必须通过的系统,只需找到您从 GitHub 获得的基本分支并将您的检查应用于每个提交,然后当且仅当 PR 中的所有提交都报告成功经过。这与 GitHub 报告状态的方式最为一致,也与 GitHub 提供的合并检查一致。

于 2019-06-27T23:43:42.597 回答