进行上下文 github 检查才能通过

Make contextual github checks required to pass

我有 4 个 Azure Pipelines,它们在创建 PR 时执行检查。它们的配置使得某些检查 excluded/included 基于所做的更改。例如,如果 PR 仅包含前端代码更改,则没有理由 运行 与检查后端代码更改相关联的检查管道。

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

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

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

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

因此,由于某些配置(如路径过滤器),如果相关管道没有运行,则此PR将被卡住。

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

API URL:

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的状态检查了。