如何使用GitHub API同时导入Issue并附加文档附件?
GitHub Issues 导入附件的curl参数使用说明
首先明确:你当前使用的创建Issue接口本身不支持直接在请求体中携带文件附件,没有对应可以直接附加文档的body参数,需要分两步完成附件挂载:
- 上传附件阶段使用
-F参数(multipart表单上传参数)传递本地文件,调用专门的Issue资产上传接口,文件字段格式为-F "file=@本地文件的绝对路径",同时需要在接口URL后拼接name=附件文件名的查询参数指定上传后的文件名 - 附件上传完成后,接口会返回该附件的GitHub访问地址,将该地址填入创建Issue请求的
body字段即可,图片类附件会直接在Issue页渲染,文档、压缩包等其他类型附件会显示为可点击下载的链接
注意:你当前示例代码中重复设置了两次Accept请求头,会导致后设置的头覆盖前一个,实际调用时只保留
Accept: application/vnd.github+json即可,不需要额外传html格式的Accept头。
完整调用示例
- 上传本地附件(以本地存储的bug复现截图
bug_screenshot.png为例)
curl -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: token <你的个人访问token>" \ -H "Content-Type: multipart/form-data" \ "https://uploads.github.com/repos/BT23/demo-repo/issues/assets?name=bug_screenshot.png" \ -F "file=@/Users/xxx/local_files/bug_screenshot.png"
调用成功后会返回JSON格式结果,提取其中browser_download_url字段的值,就是附件的公网访问地址。
- 创建携带附件的Issue
把上一步拿到的附件地址拼入body字段即可,示例命令如下:
curl -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: token <你的个人访问token>" \ https://api.github.com/repos/BT23/demo-repo/issues \ -d '{ "title":"Create an issue in HTML format", "body":"<H1>Testing HTML tags</H1><P>Does it work?</P><br>Bug复现截图:<img src="上一步提取的附件访问地址" />", "assignee": "BT23", "milestone": 1, "labels":["bug", "functional"] }'
内容的提问来源于stack exchange,提问作者BAST23
相关产品推荐
相关产品推荐

