使用GitHub API为Issue添加标签遇请求错误,求解决方案
排查GitHub API添加Issue标签的错误及正确实现
我来帮你搞定这个问题!你遇到的错误核心原因是请求体格式不符合GitHub API的要求,咱们一步步来解决:
错误原因分析
GitHub的Issue添加标签接口(POST /repos/{owner}/{repo}/issues/{issue_number}/labels)要求请求体是一个包含labels字段的JSON对象,而不是直接传标签数组。你直接把["submitted"]作为请求体发送,API无法识别这个格式,所以抛出了"Invalid request"的错误。
正确实现方式
方法1:修改label.json的内容
把原来的数组改成带labels字段的对象:
{"labels": ["submitted"]}
然后重新执行你原来的curl命令即可:
curl -X POST -H "Authorization: token OOOOOOOOOOOOOOOO" -H \ "Accept: application/vnd.github.symmetra-preview+json" \ -d @label.json https://api.github.com/repos/CHSUNSONG/star-platform/issues/11
方法2:直接在命令中传递JSON数据(无需文件)
如果不想用文件,也可以把JSON直接写在curl命令里,更方便:
curl -X POST -H "Authorization: token OOOOOOOOOOOOOOOO" \ -d '{"labels": ["submitted"]}' https://api.github.com/repos/CHSUNSONG/star-platform/issues/11
补充说明:现在GitHub API的标签接口已经不需要
Accept: application/vnd.github.symmetra-preview+json这个预览媒体类型了,去掉它也能正常工作,当然保留也不会有问题。
内容的提问来源于stack exchange,提问作者Song Changsun




