コード例 #1
0
def update_from_latest(org, repo, kind, from_date="2016-01-01"):
    if kind == "comments":
        # Current data we've got
        current_comments = comments_.load_comments(org, repo)
        # Find last day of data
        if current_comments is not None:
            from_date = find_last_date(current_comments['created_at'])
        # Update since that day
        comments_.update_comments(org, repo, auth=auth, since=from_date)

    elif kind == "issues":
        current_issues = issues_.load_issues(org, repo)
        # Find last day of data
        if current_issues is not None:
            from_date = find_last_date(current_issues['created_at'])
        issues_.update_issues(org, repo, auth=auth, since=from_date)

    elif kind == "commits":
        current_commits = commits_.load_commits(org, repo)
        # Find last day of data
        if current_commits is not None:
            from_date = find_last_date(current_commits['date'])
        # Auth is different for commits
        commits_.update_commits(org, repo, auth=auth, since=from_date)
    print("Updated {}/{}: {} after date {}".format(org, repo, kind, from_date))
コード例 #2
0
                    help="Date from which to search, YYYY-MM-DD")

args = parser.parse_args()

# Generate the github API user:token pair
# auth_user = args.auth_user
# auth_token = get_API_token(args.auth_token)
# auth = ':'.join([auth_user, auth_token])
# XXX should fix this to have choldgraf's technic work on travis
auth = get_API_token(args.auth)

per_page = args.per_page,
max_pages = args.max_pages
since = args.since

# Load data from google drive questionnaire
info = pd.read_csv(args.filename).values

# Iterate projects and retrieve its latest info
print('Updating commits for %s projects' % len(info))
downloaded_commits = []
exceptions = []
for user, project in info:
    try:
        commits_.update_commits(user, project, auth,
                                since=since)
    except:
        exceptions.append(project)

print('Finished updating commits.\nFailed for: {}'.format(exceptions))
コード例 #3
0
parser.add_argument("--per_page", "-n", default=100)
parser.add_argument("--max_pages", "-m", default=100)
parser.add_argument("--since",
                    "-s",
                    default="2017-02-01",
                    help="Date from which to search, YYYY-MM-DD")

args = parser.parse_args()

# Generate the github API user:token pair
auth = get_API_token(args.auth)

per_page = args.per_page,
max_pages = args.max_pages
since = args.since

# Load data from google drive questionnaire
users = pd.read_csv(args.filename)
usernames = users['GitHub User Name'].values

# Iterate projects and retrieve its latest info
print('Updating commits for %s users' % len(usernames))
exceptions = []
for user in usernames:
    try:
        commits_.update_commits(user, auth=auth, since=since)
    except:
        exceptions.append(user)

print('Finished updating commits.\nFailed for: {}'.format(exceptions))
コード例 #4
0
from watchtower import commits_

projects = [('docathon', 'watchtower'),
            ('scikit-learn', 'scikit-learn')]


update_db = False

# Initialize the database

# Update users and print the db
since = '2019-01-10'
if update_db is True:
    for user, project in projects:
        all_commits = commits_.update_commits(
            user, project, verbose=True,
            max_pages=1, per_page=10)

since = pd.to_datetime(since)

# Now plot pushes each day
fig, axs = plt.subplots(nrows=2, figsize=(8, 6), sharex=True, sharey=True)
for (user, project), ax in zip(projects, axs):
    proj = commits_.load_commits(user, project)
    proj['is_doc'] = commits_.is_doc(proj)
    proj["datetime"] = [t.to_datetime() for t in proj["date"]]
    proj = proj[proj["datetime"] > since]
    proj.set_index("datetime", inplace=True)
    all_commits = proj.resample(
        '7D').count().replace(np.nan, 0).astype(int)
    doc_commits = proj.resample(
コード例 #5
0
import argparse
from watchtower._config import get_API_token

# Arguments machinery
parser = argparse.ArgumentParser()
parser.add_argument("auth_user", help="A github username")
parser.add_argument(
    "auth_token",
    help=("The github API token, or a string corresponding to a"
          " variable in the global environment"))
parser.add_argument("--project", "-p", default="scikit-learn")
parser.add_argument("--per_page", "-n", default=100)
parser.add_argument("--max_pages", "-m", default=100)

args = parser.parse_args()

# Extract relevant information for watchtower
user = project = args.project
auth_user = args.auth_user
auth_token = get_API_token(args.auth_token)
auth = ':'.join([auth_user, auth_token])
per_page = args.per_page,
max_pages = args.max_pages

# Update commit information for this project
commits_.update_commits(user,
                        project,
                        auth,
                        max_pages=max_pages,
                        per_page=per_page)