仅通过Issue标题,如何快速修改GitHub项目中Issue的正文?
当然可以通过标题直接找到目标Issue,不用提前知道编号!GitHub自带的Search Issues API正好能解决这个问题,我给你捋捋具体操作步骤:
先构造精准的搜索查询:用GitHub的搜索语法锁定你的仓库和Issue标题,格式是:
repo:你的用户名/仓库名 title:"完整的Issue标题"举个例子,如果你的仓库是
myusername/my-project,Issue标题是优化用户注册流程,那查询语句就是repo:myusername/my-project title:"优化用户注册流程"。要是标题里有空格或者特殊字符,记得做URL编码(比如空格换成+)。调用搜索API获取Issue信息:发送GET请求到
https://api.github.com/search/issues,带上上面的查询参数。用curl的话示例如下:curl -H "Authorization: token 你的GitHub访问令牌" "https://api.github.com/search/issues?q=repo:myusername/my-project+title:\"优化用户注册流程\""这里的令牌需要有
repo权限,你可以在GitHub的设置里生成。从结果里挑出目标Issue:API返回的
items数组就是匹配的Issue列表。如果你的标题是唯一的,数组里应该只有一个结果。你可以顺便检查下这个Issue的正文里是否包含你要找的那个单词,确保没找错。之后提取它的number字段(也就是Issue编号),或者直接拿到body字段来修改。修改正文并更新Issue:拿到正确的Issue编号后,调用Update Issue的API(
PATCH /repos/{owner}/{repo}/issues/{issue_number}),把修改后的正文(把目标单词旁的- [ ]改成- [x])作为body参数传进去就行。
小提醒:如果仓库里有多个标题一样的Issue,你得在搜索结果里额外过滤——比如检查正文是否包含那个特定单词,才能确定要修改的是哪一个。另外GitHub搜索API有速率限制,普通令牌每小时30次请求,完全够你完成这个操作啦。
内容的提问来源于stack exchange,提问作者singmotor

