Last active
August 3, 2023 18:13
-
Star
(110)
You must be signed in to star a gist -
Fork
(82)
You must be signed in to fork a gist
-
-
Save unbracketed/3380407 to your computer and use it in GitHub Desktop.
Revisions
-
ktilcu revised this gist
Oct 14, 2013 . 1 changed file with 5 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,14 +19,16 @@ def write_issues(response): if not r.status_code == 200: raise Exception(r.status_code) for issue in r.json(): labels = issue['labels'] for label in labels: if label['name'] == "Client Requested": csvout.writerow([issue['number'], issue['title'].encode('utf-8'), issue['body'].encode('utf-8'), issue['created_at'], issue['updated_at']]) r = requests.get(ISSUES_FOR_REPO_URL, auth=AUTH) csvfile = '%s-issues.csv' % (REPO.replace('/', '-')) csvout = csv.writer(open(csvfile, 'wb')) csvout.writerow(('id', 'Title', 'Body', 'Created At', 'Updated At')) write_issues(r) #more pages? examine the 'link' header returned -
Brian Luft revised this gist
Apr 25, 2013 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,7 +11,7 @@ GITHUB_USER = '' GITHUB_PASSWORD = '' REPO = '' # format is username/repo ISSUES_FOR_REPO_URL = 'https://api.github.com/repos/%s/issues' % REPO AUTH = (GITHUB_USER, GITHUB_PASSWORD) def write_issues(response): @@ -24,7 +24,7 @@ def write_issues(response): r = requests.get(ISSUES_FOR_REPO_URL, auth=AUTH) csvfile = '%s-issues.csv' % (REPO.replace('/', '-')) csvout = csv.writer(open(csvfile, 'wb')) csvout.writerow(('id', 'Title', 'URL')) write_issues(r) -
Brian Luft revised this gist
Apr 25, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,7 +18,7 @@ def write_issues(response): "output a list of issues to csv" if not r.status_code == 200: raise Exception(r.status_code) for issue in r.json(): print issue csvout.writerow([issue['number'], issue['title'].encode('utf-8'), issue['html_url']]) -
Brian Luft created this gist
Aug 17, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,42 @@ """ Exports Issues from a specified repository to a CSV file Uses basic authentication (Github username + password) to retrieve Issues from a repository that username has access to. Supports Github API v3. """ import csv import requests GITHUB_USER = '' GITHUB_PASSWORD = '' REPO = '' # format is username/repo ISSUES_FOR_REPO_URL = 'https://api.github.com/repos/{}/issues'.format(REPO) AUTH = (GITHUB_USER, GITHUB_PASSWORD) def write_issues(response): "output a list of issues to csv" if not r.status_code == 200: raise Exception(r.status_code) for issue in r.json: print issue csvout.writerow([issue['number'], issue['title'].encode('utf-8'), issue['html_url']]) r = requests.get(ISSUES_FOR_REPO_URL, auth=AUTH) csvfile = '{}-issues.csv'.format(REPO.replace('/', '-')) csvout = csv.writer(open(csvfile, 'wb')) csvout.writerow(('id', 'Title', 'URL')) write_issues(r) #more pages? examine the 'link' header returned if 'link' in r.headers: pages = dict( [(rel[6:-1], url[url.index('<')+1:-1]) for url, rel in [link.split(';') for link in r.headers['link'].split(',')]]) while 'last' in pages and 'next' in pages: r = requests.get(pages['next'], auth=AUTH) write_issues(r) if pages['next'] == pages['last']: break