拉取请求上的检查已经通过,进入GitHub合并队列后却仍要等待检查。原因在于,队列验证的对象发生了变化:GitHub官方文档要求把该请求的变更应用到最新目标分支,并纳入排在它前面的请求,再确认必需检查通过。[1]
文档用merge_group描述这组待验证变更,并说明队列会创建临时分支。与单独的拉取请求相比,这个组包含了新的组合上下文。第三方CI说明还明确提到,临时分支的SHA与拉取请求不同。因此,PR检查通过不能独自证明队列中那个具体组合已经获得同样结果。
在GitHub Actions一侧,原文要求工作流包含merge_group事件,作为使用合并队列时的额外触发。它与pull_request及push是分开的事件。一个工作流能够响应PR,不能仅凭这一点推定它也会响应合并组;相同的检查名称也不能代替对检查对象和触发事件的核对。
缺少报告与检查实际失败,还需分别理解。文档说明,如果必需检查依赖的Actions工作流没有相应事件触发,PR入队后可能没有产生该项检查报告,合并会因缺少必需报告而失败。这不等于已经运行同一测试并得到失败断言。记录问题时,首先应说明是没有报告,还是报告了失败结果。
原页的成功情境进一步展示了组合的变化:第一个请求入队后,临时分支包含目标分支与请求一;第二个请求入队后,对应临时分支包含目标分支、请求一和请求二。这个例子说明队列为什么关心前面的变更。它不是本文访问某个仓库所得的实测结果,也不是测试通过就不存在其他缺陷的保证。
核对队列资料时,可以将PR身份、合并组对应的提交身份、触发事件及必需检查报告对应记录。这是本文基于文档的排查表达建议,目的在于先找准验证对象,不是取消检查、调整权限或修改保护规则。具体工作流是否覆盖所需事件,仍应查看获授权的实际配置与运行证据。
本文于2026年10月10日读取GitHub官方说明,页面未给出可确认的首次发布日期。本文未访问私有仓库、修改工作流或执行合并。合并队列所等待的,是当前组合所需的检查结果;理解这一点,才能避免拿另一个提交对象的通过标志替它作结论。
信息来源
本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。