mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
pullrequest: add get_pr_state to get merged flag and merged commit
Summary: get_pr_state will be used for auto-hide merged PRs in smart log. Reviewed By: quark-zju Differential Revision: D40942012 fbshipit-source-id: 5076371ca2c1ed1c7d509d0831a82aa063c996ad
This commit is contained in:
parent
14e54b90a4
commit
8c1e61d837
@ -4,7 +4,9 @@
|
||||
# GNU General Public License version 2.
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import TypedDict
|
||||
from typing import Any, Dict, TypedDict
|
||||
|
||||
from ghstack.github_cli_endpoint import GitHubCLIEndpoint
|
||||
|
||||
|
||||
class PullRequestIdDict(TypedDict):
|
||||
@ -66,3 +68,24 @@ class GraphQLPullRequest:
|
||||
|
||||
def get_head_branch_name(self) -> str:
|
||||
return self.graphql_data["headRefName"]
|
||||
|
||||
|
||||
def get_pr_state(github: GitHubCLIEndpoint, pr: PullRequestId) -> Dict[str, Any]:
|
||||
query = """
|
||||
query PullRequestQuery($owner: String!, $name: String!, $number: Int!) {
|
||||
repository(name: $name, owner: $owner) {
|
||||
pullRequest(number: $number) {
|
||||
merged,
|
||||
mergeCommit {
|
||||
oid
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
response = github.graphql(query, owner=pr.owner, name=pr.name, number=pr.number)
|
||||
pr = response["data"]["repository"]["pullRequest"]
|
||||
return {
|
||||
"merged": pr["merged"],
|
||||
"merge_commit": pr["mergeCommit"]["oid"] if pr["merged"] else None,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user