如何向GitHub PR评论附加Zip文件?curl请求报错求助
解决PR评论中添加Zip文件的问题
错误原因
你调用的issues/comments接口仅接受JSON格式请求体(要求Content-Type: application/json),直接上传Zip二进制数据会被接口当作JSON解析,因此抛出"Problems parsing JSON"错误。该接口不支持直接将文件嵌入评论内容。
可行方案:先上传附件,再在评论中添加链接
GitHub的Issue/PR系统支持上传附件关联到对应议题,之后可以在评论中引用附件的下载链接,具体分两步操作:
1. 上传Zip文件到PR对应的Issue附件
使用issues/assets接口上传文件,示例curl命令:
curl -v -X POST \ -H "Authorization: Bearer <Token>" \ -H "Content-Type: application/zip" \ -H "Accept: application/vnd.github.v3+json" \ --data-binary "@zip.zip" \ "https://github.xyz.com/api/v3/repos/{username}/{repository}/issues/2/assets?name=zip.zip"
- 替换
<Token>为你的有效访问令牌,{username}/{repository}为实际仓库信息 - 请求成功后会返回JSON数据,其中
browser_download_url字段就是Zip文件的公开下载链接
2. 创建包含附件链接的PR评论
调用issues/comments接口,将下载链接写入评论内容,示例curl命令:
curl -v -X POST \ -H "Authorization: Bearer <Token>" \ -H "Content-Type: application/json" \ -d '{"body": "请查看评审用Zip文件:[zip.zip](https://github.xyz.com/xxx/xxx/releases/download/xxx/zip.zip)"}' \ "https://github.xyz.com/api/v3/repos/{username}/{repository}/issues/2/comments"
- 把上述命令中的链接替换为第一步返回的
browser_download_url值
注意事项
- 确保你的访问令牌拥有
repo权限(私有仓库)或public_repo权限(公开仓库) - 上传附件时必须指定
Accept头以匹配GitHub API版本,避免兼容性问题 - PR本质属于Issue的一种,因此Issue相关的API同样适用于PR
内容的提问来源于stack exchange,提问作者manjunath kallannavar
相关产品推荐
相关产品推荐

