使上下文github检查通过

问题描述

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

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

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

解决方法

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

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

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

enter image description here

在这种情况下,您可以使用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中的状态检查。