You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Github Automerge合并失败的异步通知及失败原因

GitHub Automerge API 合并失败异步通知实现方案

方案1:监听原生Pull Request Webhook事件

这是最推荐的异步通知方式,完全不需要额外开发复杂逻辑:

  • GitHub 原生的 pull_request webhook 事件会覆盖 Automerge 的所有执行结果,当 Automerge 合并失败时,事件的 action 字段值为 auto_merge_disabled
  • 事件返回体中附带的 reason 字段会明确标注失败原因,常见取值包括:
    • merge_conflict:分支存在代码冲突
    • required_approving_review_count_not_met:未达到分支保护规则要求的审批人数
    • status_checks_failed:必填的CI/状态检查未通过
    • branch_protection_violation:存在其他违反分支保护规则的情况
  • 你只需要在对应仓库/组织的webhook配置中,勾选监听pull_request事件,服务端接收事件后判断对应字段即可实时拿到合并失败的通知和具体原因。

方案2:API轮询作为兜底方案

如果你的场景允许少量延迟,可以搭配轮询逻辑做双重校验:

  • 调用Automerge API提交合并请求后,按照你的业务需要的时间间隔,调用GET /repos/{owner}/{repo}/pulls/{pull_number}接口查询PR的实时状态
  • 当返回结果的merged字段为false,且auto_merge字段为null时,即可判定Automerge已执行失败,mergeable_state字段的取值对应具体的失败原因。

同步错误提前处理

部分错误不需要等异步通知,调用Automerge API时的同步返回就可以直接捕获:如果API返回4xx状态码,说明你的Automerge请求本身不合法,比如PR已关闭、当前操作账号无合并权限、PR处于草稿状态等,错误信息会直接在同步返回体中给出,可以直接处理不需要走异步逻辑。


内容的提问来源于stack exchange,提问作者WOOB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:45:08