使用GitHub的Web UI,您可以编辑PR审核的审核摘要,例如在此屏幕截图中(请参阅带有“编辑审核摘要”工具提示的铅笔图标):
如何使用GitHub API执行此操作?
我浏览了documentation,但找不到办法做到这一点。我在使用用户界面进行更改时监控了页面上触发的网络服务调用,我发现了对https://api.github.com/repos/SonarSourceIT/pr-decoration/pull/3195/reviews/91117155/update
的调用,因此我尝试使用curl
执行相同操作:
$ curl -sL -u janos-ss:$token https://api.github.com/repos/SonarSourceIT/pr-decoration/pull/3195/reviews/91117155/update -X POST -d @comment.json | jq . | tee response.json
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
我并不感到惊讶,因为URL看起来不像任何记录的API方法。
请注意,这与编辑评论不同。可以编辑评论(documented here),但我想编辑评论摘要,这是其他内容。
这可以使用REST API v3吗?我对hacky解决方案或使用Selenium或类似产品不感兴趣。我正在寻找一个干净的API解决方案,或者确认这对于当前的REST API v3来说实际上是不可能的。
更新
正如GitHub支持所证实的那样,今天使用REST API v3是不可能的。 (我确认接受的答案中的建议有效,我可能会将其用作解决方法。)
答案 0 :(得分:2)
您可以使用GraphQL API v4使用updatePullRequestReview更新拉取请求审核:
updatePullRequestReview
您可以在the GraphQL explorer中测试以下内容:
query FindReview {
repository(owner: "bertrandmartel", name: "speed-test-lib") {
pullRequest(number: 46) {
reviews(first: 100) {
edges {
node {
id
}
}
}
}
}
}
mutation UpdateReview {
updatePullRequestReview(input: {pullRequestReviewId: "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3OTExNjM5NjI=", body: "some test"}) {
pullRequestReview {
updatedAt
}
}
}
您可以找到有关形成graphql call here
的其他信息以下脚本使用curl& jq请求评论列表,提取第一个和更新审核机构:
owner="SonarSourceIT"
name="pr-decoration"
pr=3195
access_token="YOUR_ACCESS_TOKEN"
# find reviews for PR - extract the first review ID
review_id=$(curl -s -H "Authorization: Token $access_token" \
-d '{ "query": "query { repository(owner: \"'$owner'\", name: \"'$name'\") { pullRequest(number: '$pr') { reviews(first: 100) { edges { node { id } } } } } }" }' \
https://api.github.com/graphql | \
jq -r '.data.repository.pullRequest.reviews.edges[0].node.id')
curl -s -H "Authorization: Token $access_token" \
-d '{ "query": "mutation { updatePullRequestReview(input: {pullRequestReviewId: \"'$review_id'\", body: \"some test2\"}) { pullRequestReview { updatedAt } } }" }' \
https://api.github.com/graphql
请注意,您还可以使用updatePullRequestReviewComment
更新拉取请求审核评论