Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def main(pull_request: str,
github: ghstack.github.GitHubEndpoint,
sh: ghstack.shell.Shell) -> None:
# We land the entire stack pointed to by a URL.
# Local state is ignored; PR is source of truth
# Furthermore, the parent commits of PR are ignored: we always
# take the canonical version of the patch from any given pr
params = ghstack.github_utils.parse_pull_request(pull_request)
orig_ref = lookup_pr_to_orig_ref(github, **params)
if sh is None:
# Use CWD
sh = ghstack.shell.Shell()
# Get up-to-date
sh.git("fetch", "origin")
remote_orig_ref = "origin/" + orig_ref
base = GitCommitHash(sh.git("merge-base", "origin/master", remote_orig_ref))
# compute the stack of commits in chronological order (does not
# include base)
stack = ghstack.git.parse_header(
sh.git("rev-list", "--reverse", "--header", "^" + base, remote_orig_ref))
# (TODO: if we got rate limited we'll miss stuff)
# 2. For each status in parallel:
# a. Query CircleCI for job status
# b. (Future work) Query output_url to get log information
# (it's gzip'ed)
#
# For now:
# - Print if the job actually ran, or was skipped
# - Easy way to determine: check if "Should run job after
# checkout" is last step
# - I inspected circleci.get('project/github/pytorch/pytorch/1773555')
# to see if there were other options, there did not appear
# to be any indication that a halt was called. So we'll
# have to rely on the (OS X jobs, take note!)
params = ghstack.github_utils.parse_pull_request(pull_request)
ContextPayload = TypedDict("ContextPayload", {
"context": str,
"state": str,
"targetUrl": str,
})
r = github.graphql("""
query ($name: String!, $owner: String!, $number: Int!) {
repository(name: $name, owner: $owner) {
pullRequest(number: $number) {
commits(last: 1) {
nodes {
commit {
status {
contexts {
context
def main(pull_request: str,
github: ghstack.github.GitHubEndpoint,
sh: Optional[ghstack.shell.Shell] = None,
close: bool = False,
) -> None:
params = ghstack.github_utils.parse_pull_request(pull_request)
pr_result = github.graphql("""
query ($owner: String!, $name: String!, $number: Int!) {
repository(name: $name, owner: $owner) {
pullRequest(number: $number) {
id
}
}
}
""", **params)
pr_id = pr_result["data"]["repository"]["pullRequest"]["id"]
if close:
logging.info("Closing {owner}/{name}#{number}".format(**params))
github.graphql("""
mutation ($input: ClosePullRequestInput!) {
closePullRequest(input: $input) {