0

我有 4 个 Azure Pipelines 在创建 PR 时执行检查。它们被配置为根据所做的更改排除/包含某些检查。例如,如果 PR 仅包含前端代码更改,则没有理由运行与检查后端代码更改相关的检查管道。

在 GitHub 分支配置中,有一个选项“要求在合并之前通过状态检查”但是当您检查时,您必须选择哪些管道必须通过。这样做会设置它,以便您选择的管道必须运行并通过才能合并,但使用我们的配置,它可能没有理由运行,因此 PR 将永远卡住。

有没有办法在合并之前要求通过 GitHub 状态检查,但必须通过的状态检查是在 PR 创建时确定的,而不是事先确定的?

4

1 回答 1

1

根据我的测试,我可以重现这种情况。

当我在 Github 中创建多个状态检查(Azure Pipeline)时,这些检查只接受创建拉取请求后的构建状态。

因此,由于某些配置(如路径过滤器),如果相关管道没有运行,那么这个PR就会卡住。

在此处输入图像描述

在这种情况下,您可以使用API将现有的 Azure 管道状态发送到状态检查。

接口网址:

Post https://api.github.com/repos/{owner}/{repo}/statuses/{sha}

请求正文:

{
  "state": "success",
  "target_url": "Build Status badge Url",
  "description": "Build verify",
  "context": "Staus Check name"
}

然后你可以通过 Github 中的状态检查。

于 2020-10-27T06:45:12.037 回答