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))
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))
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))
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(
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)