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)
Esempio n. 2
0
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
    }
Esempio n. 3
0
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
    }
Esempio n. 4
0
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)
Esempio n. 5
0
"""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']})