基于此api: https://developer.github.com/v3/pulls/#get-a-single-pull-request
我可以使用响应中的state,mergable或rebaseable字段来确定某些审阅者批准了我的PR。
我还专门寻找用例,其中如果有最低要求为 2个批准审核 (如下图所示)并且拉取请求仅包含1个批准,该州仍应为未批准状态,并且一旦至少有2个批准审核员,则应返回批准状态。我可以在此用例中使用任何字段吗?
答案 0 :(得分:1)
有两种选择。
APPROVE
,然后使用this advanced query syntax至search来批准此PR。检查this repository以获得完整的代码示例(尤其是this function)
答案 1 :(得分:1)
使用 GitHub GraphQL API,您可以在 reviewDecision
字段中查询给定存储库的 pullRequest
。
如果需要 2 次审核并且 PR 刚好获得 1 次批准,则 reviewDecision
的值为 REVIEW_REQUIRED
。
reviewDecision
属于 PullRequestReviewDecision 类型,是一个枚举,其值为 APPROVED
、CHANGES_REQUESTED
和 REVIEW_REQUIRED
。
示例查询:
{
repository(name: "gatsby", owner: "gatsbyjs") {
pullRequest(number: 30371) {
title
reviewDecision
state
reviews(first: 100) {
nodes {
state
author {
login
}
}
}
}
}
}
回复:
{
"data": {
"repository": {
"pullRequest": {
"title": "chore(gatsby): don't terminate dev server if graphql wasn't imported from gatsby",
"reviewDecision": "APPROVED",
"state": "MERGED",
"reviews": {
"nodes": [
{
"state": "APPROVED",
"author": {
"login": "LekoArts"
}
}
]
}
}
}
}
}
根据您的 repo 设置,检查 PR 是否已被批准可能有点复杂(例如,如果未强制执行审查并且 PR 已收到一次批准,则 reviewDecision
返回 null
已请求另一次审查,正在等待)。您可能需要遍历 reviews
才能找到所需的内容。
state
也可能有用。它属于 PullRequestReviewState 类型,是一个枚举,其值为 APPROVED
、CHANGES_REQUESTED
、COMMENTED
、DISMISSED
和 PENDING
。