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

调用GitHub Merging API合并提交返回404 Not Found问题求助

问题解决排查指南

1. 优先校验API请求基础参数

  • 企业版GitHub需使用专属API端点,而非公有GitHub的api.github.com,正确格式为https://<你的企业GitHub域名>/api/v3,端点错误会直接返回404
  • 确认请求路径中的owner(组织/个人名)、repo(仓库名)拼写完全匹配,GitHub对该部分路径大小写敏感
  • 检查head参数传入格式是否正确:不要额外包裹单引号,仅需传入纯分支名字符串master即可,若请求体中为'master'会被识别为带单引号的分支名,导致无法匹配返回404

2. 校验令牌权限配置

GitHub为避免泄露私有资源存在性,无权限访问时会统一返回404而非403,需重点检查令牌权限:

  • 若使用细粒度个人访问令牌(Fine-grained PAT):确认该令牌对目标仓库开启了Contents读写权限,仅开启Pull Requests权限不足以调用合并API
  • 若使用经典个人访问令牌(Classic PAT):确认已勾选repo完整权限,企业版场景需额外勾选repo:enterprise scope

3. 前置校验分支存在性

先调用分支查询API确认分支可被正常访问,排除分支识别问题:

# 校验base分支存在性
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <你的令牌>" \
  <API端点>/repos/<owner>/<repo>/branches/<base分支名>

# 校验master分支存在性
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <你的令牌>" \
  <API端点>/repos/<owner>/<repo>/branches/master

若以上请求返回404,可确认是路径、端点或令牌权限问题;若正常返回分支信息,再继续排查合并逻辑。

4. 快进合并推荐实现方案

针对你要求的纯快进无合并提交的场景,推荐直接使用更新引用API实现,比合并API更适配快进场景:

curl -L \
  -X PATCH \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <你的令牌>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  <API端点>/repos/<owner>/<repo>/git/refs/heads/<base分支名> \
  -d '{"sha":"<master分支最新commit SHA>","force":false}'

参数force: false会限制仅快进更新可成功,完全符合你分支的配置要求,不会产生额外合并提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:06:03