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

如何在GitHub Webhook推送事件中获取源分支名称?

提取GitHub合并到目标分支的源分支名称方法

GitHub的push事件确实不会直接提供被合并的源分支名称——该事件仅聚焦于目标分支的推送操作记录,不管是直接代码推送还是合并后的推送,都只会返回目标分支的ref参数。你可以通过以下几种方式实现需求:

  • 解析合并提交信息:如果合并操作是通过Pull Request(PR)完成的,GitHub生成的默认合并提交消息会包含源分支信息,格式类似Merge pull request #123 from username/source-branch。你可以从push事件的commits数组中找到合并提交(判断message是否包含Merge pull request关键字),再用正则表达式提取from后面的分支名称。

  • 监听Pull Request事件:放弃仅依赖push事件,改为或同时监听pull_request事件。当PR被合并时,该事件的action为closed,且pull_request.merged为true,此时可以直接从pull_request.head.ref获取源分支名,pull_request.base.ref获取目标分支名,这是最可靠的方式。

  • 调用GitHub API查询关联PR:如果只有push事件中的提交哈希,你可以调用GitHub的提交关联PR接口,传入仓库信息和提交SHA,接口会返回该提交关联的所有PR,从中提取源分支信息。调用示例(伪代码):

    GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:51:28