GitHub's comment API似乎允许您在拉取请求上创建注释,但前提是您在差异中提供特定的行号以进行评论。有没有办法在整个拉取请求上创建注释,相当于在GitHub的Web界面中拉取请求屏幕的底部键入?
答案 0 :(得分:28)
是的,有可能。您引用的API文档部分与行注释相关(对pull req中提交的特定行的注释),文档说:
Pull Request Review评论是对统一差异的一部分的评论。它们与Commit Comments(在Pull Request视图之外直接应用于提交)和Issue Comments(不引用统一差异的一部分)分开。
您需要的是那些问题评论,这些评论在this page:
的顶部进行了解释Pull Request API允许您列出,查看,编辑,创建甚至合并拉取请求。有关拉取请求的评论可以通过问题评论API进行管理。
因此,为了创建Pull Request注释,您实际上需要创建一个Issue注释(因为pull请求会创建一个问题来管理它)。 page for Issue comments确认了这一点:
问题评论API支持列出,查看,编辑和创建有关问题和提取请求的评论。
POST /repos/:owner/:repo/issues/:number/comments
您如何知道要发布到哪个问题评论网址?好吧,如果查看response for getting a single pull request,您会看到它包含一个名为_links
的属性,并且该属性具有嵌套的comments
属性。这是您应该用于阅读和创建拉取请求注释的URL,与上面的POST请求中使用的URL相同。
答案 1 :(得分:3)
根据Ivan的说法,我能够执行以下操作:
$ curl -s -H "Authorization: token ${ACCESS_TOKEN}" \
-X POST -d '{"body": "Your Message to Comment"}' \
"https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/issues/${PR_NUMBER}/comments"
或
$ curl -s -u "${GITHUB_ACCOUNT} \
-X POST -d '{"body": "Your Message to Comment"}' \
"https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/issues/${PR_NUMBER}/comments"
带有密码提示
答案 2 :(得分:2)
使用GraphQL API v4,您需要使用pullrequest
架构获取Pull Request ID并在之后执行addComment
突变:
query FindPullRequestID {
repository(owner:"bertrandmartel", name:"ustream-dl") {
pullRequest(number:2) {
id
}
}
}
mutation AddPullRequestComment {
addComment(input:{subjectId:"MDExOlB1bGxSZXF1ZXN0MTU0NzExOTA0",body: "test comment"}) {
commentEdge {
node {
createdAt
body
}
}
subject {
id
}
}
}