-
-
Save nicksarafa/a8457d6dcca68d49be07e5b0158c4fe9 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