Skip to content

Commit 42e6797

Browse files
authored
Refactor collecting-PR script for release note (#1951)
1 parent 6206d30 commit 42e6797

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

scripts/retrieve_prs.py renamed to tools/retrieve_prs.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1+
"""Collect the PRs between two specified tags or commits and
2+
output the commit titles, PR numbers, and labels in a json file.
3+
Usage: python tools/release_notes/retrieve_prs.py tags/v0.10.0 \
4+
18685a517ae68353b05b9a0ede5343df31525c76 --file data.json
5+
"""
6+
import argparse
17
import json
28
import re
3-
import sys
4-
import argparse
59
import subprocess
610
from collections import namedtuple
711
from os.path import expanduser
812

913
import requests
1014

15+
1116
Features = namedtuple(
1217
"Features",
1318
[
@@ -19,10 +24,7 @@
1924

2025

2126
def _run_cmd(cmd):
22-
try:
23-
return subprocess.check_output(cmd).strip()
24-
except Exception:
25-
return None
27+
return subprocess.check_output(cmd).decode('utf-8').strip()
2628

2729

2830
def commit_title(commit_hash):
@@ -57,11 +59,9 @@ def get_ghstack_token():
5759

5860

5961
def run_query(query):
60-
request = requests.post("https://github.com/api/graphql", json={"query": query}, headers=headers)
61-
if request.status_code == 200:
62-
return request.json()
63-
else:
64-
raise Exception("Query failed to run by returning code of {}. {}".format(request.status_code, query))
62+
response = requests.post("https://github.com/api/graphql", json={"query": query}, headers=headers)
63+
response.raise_for_status()
64+
return response.json()
6565

6666

6767
def gh_labels(pr_number):
@@ -108,8 +108,11 @@ def get_commits_between(base_version, new_version):
108108
return hashes, titles
109109

110110

111-
def _parse_args(args):
112-
parser = argparse.ArgumentParser()
111+
def _parse_args(args=None):
112+
parser = argparse.ArgumentParser(
113+
description=__doc__,
114+
formatter_class=argparse.RawTextHelpFormatter,
115+
)
113116
parser.add_argument("base_version", type=str, help="starting tag or commit (exclusive)")
114117
parser.add_argument("new_version", type=str, help="final tag or commit (inclusive)")
115118
parser.add_argument("--file", type=str, default="data.json", help="output json file")
@@ -131,6 +134,4 @@ def _main(args):
131134

132135

133136
if __name__ == "__main__":
134-
# Usage: python scripts/release_notes/retrieve_prs.py tags/v0.10.0 \
135-
# 18685a517ae68353b05b9a0ede5343df31525c76 --file data.json
136-
_main(_parse_args(sys.argv[1:]))
137+
_main(_parse_args())

0 commit comments

Comments
 (0)