在拉取请求上创建评论

cbm*_*ica 31 github github-api

GitHub的注释API似乎允许您在拉取请求上创建注释,但前提是您在差异中提供特定的行号以进行注释.有没有办法在整个拉取请求上创建注释,相当于在GitHub的Web界面中拉取请求屏幕的底部键入?

Iva*_*zak 31

对的,这是可能的.您引用的API文档部分与行注释相关(对pull req中提交的特定行的注释),文档说:

Pull Request Review评论是对统一差异的一部分的评论.它们与Commit Comments(直接应用于Pull Request视图之外的提交)和Issue Comments(不引用统一diff的一部分)分开.

您需要的是那些问题评论,本页顶部对此进行了解释:

Pull Request API允许您列出,查看,编辑,创建甚至合并拉取请求.有关拉取请求的评论可以通过Issue Comments API进行管理.

因此,为了创建Pull Request注释,您实际上需要创建一个Issue注释(因为pull请求会创建一个问题来管理它).在对问题的评论页面证实了这一点:

Issue Comments API支持列出,查看,编辑和创建有关问题和提取请求的注释.

因此,您需要提出请求是:

POST /repos/:owner/:repo/issues/:number/comments
Run Code Online (Sandbox Code Playgroud)

您如何知道POST的问题评论网址?好吧,如果你查看获得单个拉取请求的响应,你会看到它包含一个名为的属性_links,并且该属性具有嵌套comments属性.这是您应该用于读取和创建拉取请求注释的URL,与上面的POST请求中使用的URL相同.

  • 一个可能对其他人有帮助的说明......应用程序无法对问题发表评论.用户必须对问题发表评论.因此,在尝试创建注释时,您无法使用client-id和client-secret进行身份验证. (2认同)

小智 12

根据伊万的说法,我能够执行以下操作:

$ 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"
Run Code Online (Sandbox Code Playgroud)

或者

$ 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"
Run Code Online (Sandbox Code Playgroud)

有密码提示


Ber*_*tel 5

使用GraphQL API v4,您需要使用pullrequestSchema 获取拉取请求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
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在资源管理器中尝试