从 GitHub 拉取请求中获取评论列表

Posted

技术标签:

【中文标题】从 GitHub 拉取请求中获取评论列表【英文标题】:Get list of comments from GitHub pull request 【发布时间】:2013-04-18 09:06:38 【问题描述】:

根据http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request

我应该能够通过发出以下 curl 语句来获取 cmets 列表,但是,它返回空,好像没有 cmets,任何想法为什么?或者我怎样才能让它工作?

curl "https://api.github.com/repos/37signals/sub/pulls/37/comments" -v

谢谢!

【问题讨论】:

【参考方案1】:

请注意

GET /repos/owner/repo/issues/issue_number/comments
GET /repos/owner/repo/pulls/issue_number/comments

不要返回相同的 cmets!例如,对于Facebook's react 的拉取请求 22878,我们会得到问题评论 ID [988239459, 988246552, 988274918](均以 9 开​​头)和拉取请求 cmets [764333623, 764334882](以 7 开头)。

如果你想拥有来自 GitHub 的所有 cmets,你需要查询这两个 API 端点。

【讨论】:

【参考方案2】:

您可以单击评论标题中的日期以获取评论的 URL。 它会在地址栏中为您提供特定的评论 URL。您可以复制该链接并将其分享给您的同事以解决这些问题。

享受..!!

【讨论】:

这是一个有用的提示,但它不适用于所提出的问题,因为它与通过 curl 检索 cmets 列表无关。【参考方案3】:

注意Pull requests API docs 顶部附近的文本(在目录下):

Pull Request API 允许您列出、查看、编辑、创建甚至合并拉取请求。可以通过问题评论 API 管理对拉取请求的评论。

所以,API 端点you are currently using 是为拉取请求审查 cmets 而设计的,而不是普通的拉取请求 cmets:

Pull Request Review Comments 是统一差异部分的 cmets。它们与提交评论(直接应用于提交,在拉取请求视图之外)和问题评论(不引用统一差异的一部分)是分开的。

由于您引用的拉取请求没有任何审查 cmets,因此您得到了正确的结果(一个空列表)。但是,正如我上面提到的,您应该访问的 API 端点是问题 cmets 的端点(只需使用相同的拉取请求 ID,因为它等于问题 ID):

curl "https://api.github.com/repos/37signals/sub/issues/37/comments" -v

【讨论】:

以上是关于从 GitHub 拉取请求中获取评论列表的主要内容,如果未能解决你的问题,请参考以下文章

从分叉存储库中发布来自 GitHub 操作的评论的解决方法

使用 github api 从拉取请求编号获取拉取请求合并提交 sha

对拉取请求进行 Sonarqube 6.7.5 社区版评论

列出所有未解决的拉取请求评论

如果评论被用户批准,则通过 Github 操作合并 PR

GitHub:获取当前在拉取请求中的一个特定文件的所有更改