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

如何通过GitHub Enterprise API身份验证后正确创建Pull Request

问题根因
  • 直接原因:调用创建PR的POST请求的curl命令未携带-u [MY_USER_NAME]:[MY_TOKEN]身份认证参数,和第一个调用/user接口的curl对比就能发现缺少了认证字段,这是触发身份验证报错的核心原因。
  • 次要潜在问题:提交的JSON数据格式不符合标准,JSON要求键和字符串值必须用双引号包裹,当前用单引号包裹键,即使补全认证也会返回参数错误。
  • 可能的权限问题:如果补全认证后仍报错,需要确认你的PAT(个人访问令牌)已授予repo读写权限,且你对目标仓库有创建PR的操作权限。
排查解决步骤
  1. 给创建PR的curl请求添加身份认证参数,和第一个/user接口的认证配置保持一致
  2. 修正POST请求的JSON格式,调整参数写法适配shell转义规则,避免JSON解析失败
  3. 建议将用户名、令牌、组织、仓库这些公共参数提取为变量,避免重复编写出现不一致
  4. 若调整后仍报错,可将UUID替换为实际存在的分支名,手动执行curl命令测试接口返回,定位具体问题
修正后的脚本参考
#!/bin/sh
# 公共参数配置
GITHUB_USER="你的用户名"
GITHUB_TOKEN="你的令牌"
GITHUB_ORG="你的组织域名"
TARGET_REPO="你的仓库名"
TARGET_BASE_BRANCH="master"

CURRENT_BRANCH=$(git branch --show-current)
git stash save
git checkout ${TARGET_BASE_BRANCH}
git pull
UUID=$(uuidgen)
git checkout -b "${UUID}"
npm version patch
git add package.json
git commit -m "#; update version script test"
git push origin "${UUID}"
# 身份验证测试
curl -u ${GITHUB_USER}:${GITHUB_TOKEN} https://github.${GITHUB_ORG}.com/api/v3/user
# 创建PR请求,补全认证+修正JSON格式
curl \
  -u ${GITHUB_USER}:${GITHUB_TOKEN} \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://github.${GITHUB_ORG}.com/api/v3/repos/Modules/${TARGET_REPO}/pulls \
  -d "{\"head\":\"${UUID}\",\"base\":\"${TARGET_BASE_BRANCH}\"}"

内容的提问来源于stack exchange,提问作者A.Chao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:09:04