def pulls_to_csv(start_pull, stop_pull, owner, repo, filename="", merged="true", state="closed"): (prs, commits, issues) = github.get_pull_requests(owner, repo, start_pull, stop_pull, merged=merged, state=state) sep = "\a" df = pd.DataFrame(prs, columns=[ "PR Number", "Closed Date", "Author", "Title", "Body", "Comments", "Issue Number" ]) df.to_csv('./data/%s-pulls.csv' % filename, index=False, sep=sep) df = pd.DataFrame( commits, columns=["PR Number", "Message", "Author", "Date", "Patch"]) df.to_csv('./data/%s-commits.csv' % filename, index=False, sep=sep) df = pd.DataFrame(issues, columns=[ "Issue Number", "Date Issue Closed", "Author", "Title", "Body", "Comments" ]) df.to_csv('./data/%s-issues.csv' % filename, index=False, sep=sep)
def handle_get_pull_requests(owner, repo): '''Returns template vars for open pull requests for a repo.''' token = session['token'] pull_requests = github.get_pull_requests(token, owner, repo, bust_cache=True) _add_urls_to_pull_requests(pull_requests) return { 'logged_in_user': session['login'], 'pull_requests': pull_requests }
def count_open_pull_requests(owner, repo): token = session['token'] login = session['login'] pull_requests = github.get_pull_requests(token, owner, repo, bust_cache=True) _add_urls_to_pull_requests(pull_requests) own_prs = filter(lambda pr: pr['user']['login'] == login, pull_requests) return { 'count': len(pull_requests), 'own': own_prs }
def repo(user, repo): token = session['token'] pull_requests = github.get_pull_requests(token, user, repo) sys.stderr.write('Found %d pull requests in %s/%s\n' % ( len(pull_requests), user, repo)) # TODO(danvk): augment pull_requests rather than doing this. format_pull_requests = [{ 'url': url_for('pull', user=user, repo=repo, number=pr['number']), 'number': pr['number'], 'title': pr['title'], 'user': pr['user']['login'] } for pr in pull_requests] return render_template('repo.html', pull_requests=format_pull_requests)
"""Demo use of github module. """ import github as gh from pprint import pprint separator = '-' * 80 print('\nInfo for mccalltd:\n', separator, sep='') user = gh.get_user('mccalltd') pprint({'name': user['name'], 'followers': user['followers']}) print('\nRepos for mccalltd:\n', separator, sep='') for r in gh.get_repos('mccalltd'): pprint({'name': r['name'], 'description': r['description']}) print('\nOpen pull requests for rails/rails:\n', separator, sep='') for r in gh.get_pull_requests('rails', 'rails'): pprint({'body': r['body'], 'submitter': r['user']['login'], 'commit_id': r['head']['sha']})