调用GitHub API创建Release返回404错误的解决方法
问题排查&修复方案
调用GitHub Release创建接口返回404,是代码里存在4个典型错误,逐一修正即可:
- 参数传递格式错误:当前代码用
data=payload传参会以表单格式提交请求,GitHub API要求必须传JSON格式载荷,把传参改成json=payload即可。 - 字段类型错误:
draft、prerelease、generate_release_notes三个字段接口要求接收布尔类型值,你当前传的是字符串"false",直接去掉引号传Python原生布尔值False就行。 - 路径/认证占位符未替换:
- 接口URL里的
user/test是示例占位符,必须替换成你实际操作的仓库对应的「用户名/仓库名」 - 请求头里的第二个
token是占位符,必须替换成你自己生成的、拥有仓库写入权限的GitHub个人访问令牌,令牌权限不足、仓库路径填错都会直接触发404
- 接口URL里的
- 分支值不匹配:如果你的仓库默认分支已经从
master改为main,target_commitish字段的值要同步改成main,找不到对应提交分支也会触发接口报错。
修正后代码
import requests payload = { "tag_name": "v1.0.0", "target_commitish": "main", # 老仓库默认分支为master的话这里改回master "name": "v1.0.0", "body": "Description of the release", "draft": False, "prerelease": False, "generate_release_notes": False } # 替换为你自己的仓库路径 url = 'https://api.github.com/repos/你的用户名/你的仓库名/releases' # 替换为你自己的有效访问令牌 headers = {'Authorization': 'token 你的个人访问令牌'} response = requests.post(url, headers=headers, json=payload) # 打印状态码和响应文本,方便后续排查剩余问题 print(response.status_code) print(response.text)
内容的提问来源于stack exchange,提问作者Ctepan
相关产品推荐
相关产品推荐

