关于通过GitHub API v3获取文件行内评论及编辑删除的咨询
GitHub API v3: 处理文件特定行的评论
嘿,我来帮你理清楚这个问题——GitHub API v3确实没有专门返回单个文件特定行评论的独立端点,但咱们可以通过现有接口间接实现你要的获取、编辑和删除操作,具体操作方式如下:
获取文件特定行的评论
文件里的行评论本质上属于两种场景:Pull Request的代码审查评论,或者提交(commit)上的评论。针对不同场景,你可以这么做:
- Pull Request中的行评论:调用
GET /repos/{owner}/{repo}/pulls/{pull_number}/comments端点,它会返回该PR下所有的代码审查评论。每个评论对象里包含path(对应目标文件的路径)、position或original_position(对应行号相关的位置标识)。拿到列表后,你只需要自己过滤出匹配目标文件路径和对应行位置的评论即可。 - 提交(Commit)中的行评论:如果评论是直接打在某个commit上的,调用
GET /repos/{owner}/{repo}/commits/{commit_sha}/comments端点,同样可以通过评论对象里的path和position字段过滤出特定行的评论。
编辑或删除目标评论
一旦你过滤得到了目标评论的 id,就可以用以下接口进行操作:
- 编辑评论:
- 对于PR评论:使用
PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}接口,请求体中带上更新后的body参数即可完成编辑。 - 对于Commit评论:使用
PATCH /repos/{owner}/{repo}/comments/{comment_id}接口,同样传入更新后的body即可。
- 对于PR评论:使用
- 删除评论:
- 对于PR评论:调用
DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}即可删除目标评论。 - 对于Commit评论:调用
DELETE /repos/{owner}/{repo}/comments/{comment_id}完成删除。
- 对于PR评论:调用
小提示
需要注意的是,position 字段对应的是文件的“当前版本行号”,而 original_position 对应的是PR中文件的“原始版本行号”,如果PR里文件有过改动,记得根据你的需求选择对应的字段来过滤哦。
内容的提问来源于stack exchange,提问作者elcharrua
相关产品推荐
相关产品推荐

