black: re-format
black and isort are enabled in the openbmc-build-scripts on Python files
to have a consistent formatting. Re-run the formatter on the whole
repository.
Change-Id: If1010ead857d41364c024bf8145a979a9377d382
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/tools/github_issues_to_csv b/tools/github_issues_to_csv
index c287f7c..ce6e1e2 100644
--- a/tools/github_issues_to_csv
+++ b/tools/github_issues_to_csv
@@ -8,10 +8,11 @@
import argparse
import csv
import getpass
+
import requests
auth = None
-states = 'all'
+states = "all"
def write_issues(response, csv_out):
@@ -22,36 +23,45 @@
if response.status_code != 200:
raise Exception(response.status_code)
for issue in response.json():
- if 'pull_request' not in issue:
- labels = ', '.join([lable['name'] for lable in issue['labels']])
+ if "pull_request" not in issue:
+ labels = ", ".join([lable["name"] for lable in issue["labels"]])
# Below lines to overcome "TypeError: 'NoneType' object has
# no attribute '__getitem__'"
- close_date = issue.get('closed_at')
+ close_date = issue.get("closed_at")
if close_date:
- close_date = issue.get('closed_at').split('T')[0]
+ close_date = issue.get("closed_at").split("T")[0]
- assignee_resp = issue.get('assignees', 'Not Assigned')
+ assignee_resp = issue.get("assignees", "Not Assigned")
if assignee_resp:
- owners = ','.join([assignee_login['login'] for
- assignee_login in assignee_resp])
+ owners = ",".join(
+ [
+ assignee_login["login"]
+ for assignee_login in assignee_resp
+ ]
+ )
else:
owners = "Not Assigned"
- milestone_resp = issue.get('milestone', 'Not Assigned')
+ milestone_resp = issue.get("milestone", "Not Assigned")
if milestone_resp:
- milestone_resp = milestone_resp['title'].encode('utf-8')
+ milestone_resp = milestone_resp["title"].encode("utf-8")
# Change the following line to write out additional fields
- csv_out.writerow([labels.encode('utf-8'),
- issue.get('title').encode('utf-8'),
- issue.get('state').encode('utf-8'),
- issue.get('created_at').split('T')[0],
- close_date,
- issue.get('html_url').encode('utf-8'),
- issue.get('user').get('login').encode('utf-8'),
- owners, milestone_resp])
+ csv_out.writerow(
+ [
+ labels.encode("utf-8"),
+ issue.get("title").encode("utf-8"),
+ issue.get("state").encode("utf-8"),
+ issue.get("created_at").split("T")[0],
+ close_date,
+ issue.get("html_url").encode("utf-8"),
+ issue.get("user").get("login").encode("utf-8"),
+ owners,
+ milestone_resp,
+ ]
+ )
def get_issues_from_github_to_csv(name, response):
@@ -65,36 +75,49 @@
print(states)
# Multiple requests are required if response is paged
- if 'link' in response.headers:
- pages = {rel[6:-1]: url[url.index('<') + 1:-1] for url, rel in
- (link.split(';') for link in
- response.headers['link'].split(','))}
- while 'last' in pages and 'next' in pages:
- pages = {rel[6:-1]: url[url.index('<') + 1:-1] for url, rel in
- (link.split(';') for link in
- response.headers['link'].split(','))}
- response = requests.get(pages['next'], auth=auth)
+ if "link" in response.headers:
+ pages = {
+ rel[6:-1]: url[url.index("<") + 1 : -1]
+ for url, rel in (
+ link.split(";") for link in response.headers["link"].split(",")
+ )
+ }
+ while "last" in pages and "next" in pages:
+ pages = {
+ rel[6:-1]: url[url.index("<") + 1 : -1]
+ for url, rel in (
+ link.split(";")
+ for link in response.headers["link"].split(",")
+ )
+ }
+ response = requests.get(pages["next"], auth=auth)
write_issues(response, csv_out)
- if pages['next'] == pages['last']:
+ if pages["next"] == pages["last"]:
break
-parser = argparse.ArgumentParser(description="Write GitHub repository issues "
- "to CSV file.")
+parser = argparse.ArgumentParser(
+ description="Write GitHub repository issues to CSV file."
+)
-parser.add_argument('username', nargs='?', help="GitHub user name, "
- "formatted as 'username'")
+parser.add_argument(
+ "username", nargs="?", help="GitHub user name, formatted as 'username'"
+)
-parser.add_argument('repositories', nargs='+', help="Repository names, "
- "formatted as 'basereponame/repo'")
+parser.add_argument(
+ "repositories",
+ nargs="+",
+ help="Repository names, formatted as 'basereponame/repo'",
+)
-parser.add_argument('--all', action='store_true', help="Returns both open "
- "and closed issues.")
+parser.add_argument(
+ "--all", action="store_true", help="Returns both open and closed issues."
+)
args = parser.parse_args()
if args.all:
- state = 'all'
+ state = "all"
username = args.username
@@ -105,16 +128,26 @@
# To set the csv filename
csvfilename = ""
for repository in args.repositories:
- csvfilename_temp = '{}'.format(repository.replace('/', '-'))
+ csvfilename_temp = "{}".format(repository.replace("/", "-"))
csvfilename = csvfilename + csvfilename_temp
-csvfilename = csvfilename + '-issues.csv'
-with open(csvfilename, 'w') as csvfileout:
+csvfilename = csvfilename + "-issues.csv"
+with open(csvfilename, "w") as csvfileout:
csv_out = csv.writer(csvfileout)
- csv_out.writerow(['Labels', 'Title', 'State', 'Open Date',
- 'Close Date', 'URL', 'Author', 'Assignees',
- 'Milestone'])
+ csv_out.writerow(
+ [
+ "Labels",
+ "Title",
+ "State",
+ "Open Date",
+ "Close Date",
+ "URL",
+ "Author",
+ "Assignees",
+ "Milestone",
+ ]
+ )
for repository in args.repositories:
- l_url = 'https://api.github.com/repos/{}/issues?state={}'
+ l_url = "https://api.github.com/repos/{}/issues?state={}"
l_url = l_url.format(repository, states)
response = requests.get(l_url, auth=auth)
write_issues(response, csv_out)