Productive Bursts

Load Modules and Main Variables


In [21]:
from urllib2 import urlopen
import json
import re
import pandas as pd
from datetime import datetime
import time
import requests
import matplotlib
import numpy as np

#from settings import github_token
github_token = "819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15"

ISO8601 = "%Y-%m-%dT%H:%M:%SZ"

settings = {
            'project': 'ipython',
            'repo': 'ipython',
            'github_token': github_token
            }

GitHub API Functions


In [22]:
# from https://github.com/nipy/dipy/blob/master/tools/github_stats.py

element_pat = re.compile(r'<(.+?)>')
rel_pat = re.compile(r'rel=[\'"](\w+)[\'"]')

def parseLinkHeaders(headers):
    link_s = headers.get('link', '')
    urls = element_pat.findall(link_s)
    rels = rel_pat.findall(link_s)
    d = {}
    for rel,url in zip(rels, urls):
        d[rel] = url
    return d

def getPagedRequest(url):
    """get a full list, handling APIv3's paging"""
    results = []
    while url:
        print("fetching %s" % url)
        f = urlopen(url)
        results_json = json.load(f)
        if type(results_json) == list:
            results.extend(results_json)
        else:
            results.extend([results_json])
        
        links = parseLinkHeaders(f.headers)
        url = links.get('next')
        time.sleep(0.25)
    return results

Functions to Fetch from GitHub API


In [23]:
#print datetime.fromtimestamp(0).strftime(ISO8601) # for github since param
project_url = 'https://api.github.com/repos/{project}/{repo}'.format(**settings)

def getIssues(settings, project_url, state='all'):
    url = project_url + '/issues?access_token={0}&state={1}'.format(settings['github_token'],state)
    return getPagedRequest(url)

def getIssueComments(settings, project_url, issue_id):
    # GET /repos/:owner/:repo/issues/:number/comments
    url = project_url + '/issues/{0}/comments?access_token={1}'.format(
                                                                        issue_id,
                                                                        settings['github_token'])
    return getPagedRequest(url)

def getCommits(settings, project_url):
    # GET /repos/:owner/:repo/commits
    url = project_url + '/commits?access_token={0}'.format(settings['github_token'])
    return getPagedRequest(url)

def getCommitInfo(settings, project_url, sha):
    # GET /repos/:owner/:repo/commits/:sha
    url = project_url + '/commits/{0}?access_token={1}'.format(sha, settings['github_token'])
    #print json.load(urlopen(url))
    return getPagedRequest(url)
    
def getReleases(settings, project_url):
    # GET /repos/:owner/:repo/releases
    pass

Function to Make Data Frame


In [24]:
def createCommitsDataframe(commits_json=None, refresh=False):
    
    if not refresh:
        try:
            print 'trying to open commits.json'
            with open('commits.json') as infile:
                print 'reading commits.json'
                df = pd.read_json(infile)
                
                # put timestamp column datatime object
                df['timestamp'] = pd.to_datetime(df.timestamp)

                return df
        except:
            print 'no commits.json found, getting commits and creating DataFrame'
            
    if not commits_json:
        commits_json = getCommits(settings, project_url)
    
    df = pd.DataFrame(commits_json)
    
    def addCommitAuthor(row):
        # Commit can have different committer and author
        if row['author']:
            if row['author']['login']:
                return row['author']['login']
            
    def addCommitStats(sha):
        ## API limit is 5000 per hour - TODO: slow  down our calls if we're going to hit
        # the limit
        commit = getCommitInfo(settings, project_url, sha)[0]
        return commit['stats']['additions'], commit['stats']['deletions']
    
    def addCommitDate(commit):
        return commit['author']['date']

    df['author_name'] = df.apply(addCommitAuthor, axis=1)
    ## Out until we can control staying within the API Limit
    #df['additions'], df['deletions'] = zip(*df.sha.apply(addCommitStats))
    df['timestamp'] = df['commit'].apply(addCommitDate)
    df['timestamp'] = pd.to_datetime(df.timestamp)
    
    return df

Some Functions for Analysis


In [25]:
def uniquerAuthors(auth):
    return len(set([a for a in auth if a != None]))

Load and Fetch Data + Create DataFrame


In [26]:
#xxx = getCommitInfo(settings, project_url, 'd31f0a266863e23ddfb5f68d48059a5d67f6d683')[0]

In [27]:
commits_df = createCommitsDataframe()


trying to open commits.json
no commits.json found, getting commits and creating DataFrame
fetching https://api.github.com/repos/ipython/ipython/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bd0624c899195c12521456bc965cdea503d1645b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=730da3fcac3a9eb465a5ba3d08a2f6070bddea5e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2127d18e39a1e748f61d4152f7be68fd36d82356
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5feaa035101f5a0d51178754141173f2f5924ca3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e1f1617ed7310d0be6911b8c5801f8d4cf34ac0f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ae6ac192c0210f867f83e11f3945a91f76ce837c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=29cac5a75300616b55f4a536834773495b513440
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=92e9682499c1049c642c0b7d9599153b5e295a8a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e1fdcc9177d521598db98b3ef0a7b5e47cf6244a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=25f40ffb3902eb36d4fecc55fc3b8fa9dc84dc5e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c1bdf445d5bf973ab43de7446836014e90d2b6c1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ebf151f5b5b2f8d3ab638839efd0d7d2f272eaad
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=45a7ef8af92a4155a69ec1c7051e85de0b3d1a15
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=09112f42487e4c2d098236a52a6c73228ba500e0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=582afe4369c80bb111d01ebefa6ebaa6321778f0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b1ba31d3c7e5b0a91df79c86c855836840e09d4b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=dcac92daa20b21c0790bb075a4e2ec53e6ab8292
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=af45ffd0b58436cb7ce5e665a290561f668556c6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3414c5dc24b0320bc8bbfd31da57363161d7603f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bcc71453b08b501e4a8d1d4cae4d175d66ff3716
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1bf71da4348e03c983ff5275d0d43727a5aa0548
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=114578eed6c3fe02542a33e965f30d1d811cc499
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0355d3dbf553dd8250966b78f1ddcfc520334ee0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ba76662d39ec7f433a11e189594cd8b674954cdc
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b696039a8e7a94aad1f06d897571204139b63e15
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ef8761460bbd0dc77c646a01a665f088b94c20dc
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9c922f54af799704f4000aeee94ec7c74cada194
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c24b633d6438016efe62ac9e92f26e087fdbd3ed
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e563f9f39085b78a476194b8002b83834a5ff337
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8eafb909f1b171910b6a530229d62d94d704918c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e992cff610239cee2262cbc1dbb1e0a54cf474ca
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=25a392d4939ab6fcc03f065b8f7419aa0471bbcf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c048ef2eef1d678fbd86ac046f2c0351fab1a575
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3ef54c3285c3727edf60203d754f71b0e90b75f2
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b1976c998ceeacbb6d2b937eb49da2abce6b19cf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ce0248b92245c790bd6f9eae0e0314fea4ad5585
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=20c03ad6dc29ba99c5dd4f3dfc1eee051abae699
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9fd29c9c34d4761d2a468243d4db2dd177069dac
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=a55430b857526ce60e6f0b137332a81c86185eba
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1770835d760d2879ff3b092aba2c9488272b4ac5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9b304e463fe4f8684b49eb004294294b408263ac
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4f4bf5d6c194808fc3f8c63e999e933abb746a3c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0bdca1488ac227fbceed4d735474fb628fc8e6d5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b535a14ce4f3707b66b64c5de3b6458a42f061d3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ba0924416eee42ebad5cf096a25b57b90aed85f1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=73885466e3ae6434a0b0b47dc16d469e195bffb2
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=12617792e50e3882617f888a5049ce9900c9c749
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=86209d7d25b9b48c97a76252e27d6820ecad0472
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=30c4c7ca7d730483df833ec1bfa70abbfc8a5090
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6ef833d1872343628e87dc7abdc73bd3c107eda4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=795c9e30ee8ad2e1a4e780c439fc50b565670e26
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1bf5b7e43d6efb8ffe4ea1fb654aeac0795a6a38
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=93595854ad564a6fd44009e577b28887238da985
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=99a19ac74b27d7b9d0acaf8cd6c9dc1320ba469e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=92ec92fc0a5430e9be01a4938560c00475f87fe0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5e1c06188471470807dcc5884ed4e6a9ca36428f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0d6b7e45453565781d6ebd0e9ca069b349361bdf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1f72c5297bad4084702ca00d80324b6e40cabfbb
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9fd0958831338ec0f6ddf9b5e6923109efd67d73
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bb4fb6a5546eaa0bbc3eec236e38ba8a20186413
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fdac8f30fd825e3f359e7cdfc6463829042699da
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3e1b96f4ab654a7f60b87d2db4501a14aeab72b6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=faafe3e7703722a9814d8a717f8d91e8e90eab40
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=42a6cf97d3c9272485089f0ae8781fa649861c9b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bc5ca515262a243d35605fbb3e55e5f1314b59ea
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=01e399ff73a1a74dd07f1a67d5b4a978d3c3f420
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f487bbbe86f0d6fabcb71261d67cb7ff6a2e14d0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8bc49b9efb85d2624464c38855f38571ab1185af
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5efd3e112a927a30367e3fb363fbe7815b1d2596
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5ea5ed143744022a410f2569572a61896f9637d6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fae28de43aa276f882841853c4a82d570c50a25c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=775f86e1744bfe86a9e1943b12649d6b1a86e045
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f369b2b5b20dcbbf77df3995d9fa19fdd19d9cb9
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=896f7c9f20a1f88fe3db0ea75b7675ec1e7ca49e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d8cbebeddb558c5987097bed3613166da9d9adbc
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e95c296fffad88f96ffef3a3bffcfe40da51ce8c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=7ee5c47647948361e1bbe7cbf7bb516f446f2efd
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=61176fb6a379ae0ee725e839ece0c2c08127c4ee
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=52652dc2ff404d8d10458a86528b77450bff9af7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f2b674a673ea0a113eef853a0d5421f6b73ab6b7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8952b600ed2c752eb3673ec405a1c3a7628dcaa4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=90aa72381a7d53a9d0d82833193f99570e33ab98
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0075711835462195c9eae6dd4148790cbff407d0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8ed98f35fca292fb45400a89508b06808b25fc3c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c801089e652c61fc3604d9a9100e9d3d84fd3dbf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fce27308cbe965fb000e562f8ae7def3cb422d23
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=a0cdd9f72b5741aa040f8543ad0642c6312e490d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=24dcb6ba48453c74b10fb0772058ca65503222c8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=878c641fe857558cab0657cb09a0246ac33ea83f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bb774a032a562f81d7fadd39b9fb153825b09afd
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c75ada0b7e882c3070e0e4cff96a886243b6ca70
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c2f668bad0ba5b8ddddc2b81d7f2c5a131ae6855
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2dcf5c582e605e37bd0024fd80c8cf2e1bb9e2d9
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=001a008875df9e4be8e039de58a47ccf105788a8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3cf1aeb8a9c264f289a44b249d1b2d0a98d20559
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=95bde0fc22f0c8b8b530c1a7d72195cf5849df6a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8d2ffbb17ce5dac6ae8abdf3c612e3348027090d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6d8c0908c05c1b74796ee207bd63019dba91f57b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4f8465e4d25b5ec81740363acc893f6d81a4ab5d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=119af2693b1316a68d04d4489db0c8346c9e1278
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b02db490a18b3f8866bb259f44243248b2d11e25
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d22004d6181732d0a0ce897595925c01dc930e41
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fac629112e6080bd369bc280f87f0d7d19eb6da8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f5afae83cf71e48f7db29900356270f4545fe97e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fe734c10e3049522fd8e9e49304d3750a17fa510
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ac3edaf6c71a46884c7333112475944477104525
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=02db7f37091aeb463ba533f5a84e3b841c09aebd
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=31afb62f42c0b2a0068ab97acc2e97cb0a56f1d7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=346cac548225fdd61bc9c8e7c9a0790b9228fc92
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f19ae9e563ebb1b2dc9c851af10e7d5076f02e41
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2b342f1cc0bd3f6ea0d24f282df927822c8b99f3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0b4fd4cf4bdce1a4b9db43f6f91a0c5d73ec2140
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bff463b522944975f7cc61c9222b006b85c87bdf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2888383a6f96919e5376eddddcb4a08ef045be15
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d5e7d795f1f265461b0f994820888cd3ca8b4272
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=7dacc590e9c129dc16e9656f70faa404da9534e7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e36c5abfdc12702dd3ba04d98ddccfc2683595e8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=49a2c8c30c31a4fa998f4757937cfb72c06d458b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=45210d9da8c20601dc6d86a5f070b4f160d6073e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6331c3d0cb52350c1b25dbdf76766980a4718b48
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2bcc60b75d3a29776df8aff269a3573ce559ff2d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=012d228ad5455b7a226c2f524ae04e95bb8ed1a8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fcf42b73e5ec2f0f35e4529ed04453a6b91df04f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=018b58011c032e9e2cb3a45313dabef903496931
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1df7d9891aca4dfb90c7520ae310f286abea1d4c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=45d28c54c204aeae7adfd5ca4d7b69309d7d3612
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0956514e256b37ef87fda4984e27ef11e304b753
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fcc05f7db9917e7ddee7fb064408a138cf6d1402
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c5f6833dbf7256c68b50a20f123788efd28e638f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3cc042abfd061224131032fd98e460a3683ea6ae
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0e6a712c69978c1062466cc6a1f513a4ddb43931
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=10a533335e2ef6ead23e0191892d1e23611cb1db
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0eeff21b64b38a8886a7d8294d390f2d6d6cb4f2
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e36957765aad5f9267eecc21eaad8f5f632774b5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9bb583cd4e63dcc9b2850f32d66c5fdfcc4911a2
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fe287d7f88a4a22ee263c9dd198b624b160c9a6f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e3752a8b2043460a8c1b421d3ef4ff46c2c7d10f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e0b0d5e676053c4cac07cd27d01333649733f9fa
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fa181ff0df17c855dff3e4dfafb6c3928daf981e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d362026e1460889ed88706f7dd1d89affb9b6ca1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d1f107f604157f0158b47f2cebd4792678b4be33
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=67d665da9c8d25985fce2ee987be1bae786bac07
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=64a50619efb7927da2f9b2729373b32745ab6837
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=940b5fbe29e6437c0ef2010a630121d836888385
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=af2296539b44f667f897f3083a173db90a85577b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c5853494fb6b53585bc9eac60cb6030702799fdf
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c708a853f179ed9be447d6076cfa9cbd2d38e7d7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8e61486379838a9573da2135f48e206da946983d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=985edaa4fdd6e5d56cfcdfe95230564d7d77383b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=549a6b38537c7ae61360e363a6085fd93d8db60c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=feccd1965f9f02a6063636aecedcdbb70e4dc68a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4626066244971d87157e3264debd7678a176b5e1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=633cbe1ead9d129d2fe25d2f679eb926d78e5013
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5bd89723b042112cfd7e35662803a1b5395b36f9
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9f9956919aca2907b8a0ce6793ad31c099e4527c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bf33fa8f13a23837fce7d9a0be7e22a42a6e5ae7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6b2d9ccee443e570bb0a999011dadb0aafa381e1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=668e8a0a9b715e76d378da8f62d14586036748f4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=9de8a8b52cb6778a8fb2ee167bbde3d47ae1c27b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8636e4e3246ea4b4162b4619c25717bd09aaba90
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b131150392b48af796f683a5fd5f03213cd942a4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c3da53bd0f2b643a875f1e82d9aa81480b0cbe29
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3760d31545ed9c6004cc7c6036fcffca3ebcb9a4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5e65a4608af3201eef3e9cb227a4418f16ea49c3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=814dd411a2a0b5ecdd9ef891f42c25feafa3b9b6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=401962b8b5b28fd9916255c27a0e26e30d70712c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fc5db528b464d722b3be69d2b6333090200b0551
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=efa3dcd29143f31ea13efd2775e543468f1a24b0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2ecf55e44f04e1a2e67531f140b37276d8c83378
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=677c8ced9fe10fcd57090837a0ae415c0f3254c6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=07b5e89b797230f56dc7a4b54e986fb8369a8713
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d6a97e95c4fdc7c31e0db6f07d39f00777449f4c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d5b4ff0ab5fca0d73a333fb36f36e55888f02a8d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=feaba3cb6299866b0e687827da495873f9640426
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8de5e1156f8f6eca69316990f76f6c0be9dd6be5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d69250d33fbd8e6aef1c77c8e490befd1657b83e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5dc68a37fe86e5a7737414d1623b1aed383fd44d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c5885646d46e602ec7ae6822d82bd7c6fc7985d3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=41d21a6b8db4d04f24bb8fc3c2f7b17fdff4e141
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2952bd3b3909d756efcb851a100ab62dbe24f73e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=235d09c9381c1a360dae046e8ef5b0e048b0a8b4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4000009d05a5a26a42c86fbf3fe5d78f9bb07af3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8f78aed22ada2c662a9fda45d86af7e252229246
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=dc1dc930e34b70add442de13e2a11e579400a908
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=0784a05ac8a663dcbde27968ff5643ac13c5f762
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4c910d21948769cc3afb0f4aa202de378cc39227
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e3d7fc24a2879cb025c20d2203a92ab0cab08320
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e416c1a98c9e4a2c58ecea84936134f024b7afce
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3902dd419107f14ca6afdfd6d67c0ed357a85224
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=465bef9cea30a00335b36e301dbc5db612d9bd74
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e957fe673d03881587048662fd33e66477b18c7e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b491840b541c99d77930f1324314ae33b3e07c4c
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e68cf3acfde04fb1164c3b13d32f69fceb68eaab
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=dddb66d41d1fe57be4ec41c20cca4fdaa916a0c0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=98436f1be90ec9f85e22756e3ad6dd9072fe849f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=97ce9f8c44eef7d19a1470fd99ecbfc6c73bd1d8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=7fb6c41e5e1bc5f23ad6fa5047b88d20eeebc02f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=a4b0811049c0b85cc0a1dffd20afb88ebb712626
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=b8dd49c8e1257d51af09c545c964031c3b5517f4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=35a008f52e81b168ce8a9fc921bbdea76822612f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=7d1bdfaff74a040b88d1726b47ced673f227bed1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6b21f595dc3c2fe308e678779a81e13fe88412c4
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d43c3dc51fee11f340e5bcde72d3239c12bb4db8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=41fd0b41f621b6e10dba5333d8b57200dbbe0fc5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2c33e48e435e6439c0387e14f4b2e2c3856a0bb6
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=82eb507b099a41f0da280e0c243336d22d58ae99
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2a5fd2a74ab63d8df3e95fd1adf22eda04f0473d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=eecb588e458edc07e58e786dc1e4cf8f5868cf3a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5abd884b9e9eaf48cea769c2db45e22db89119a1
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8d603c09dd49e685cb5dae9c2e3e5dcf75a9a72a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=badeab10d3254c484342a73467674f665261dfa8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f9355af1cb0db55dfad280e88ddfcd5b48ad2189
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=452f07b9e67b78e1b11ba82d651d89bd4d55dc03
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e21146b31a62724e46a1f64915c8ab1fc60b8d31
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=212099c0a18fba48167b1393e0c96bd56a548019
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d4964e7ac2e71aaf2ef947d660de5a7dc8218f81
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2be9133b2a3035f51932b3ebd9ac054a9b3e28ba
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d807b505657546363e0a6f0af674a1568c0c0195
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f83fdd21557a46a96172edc66ee5e330519540b5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=fb2f9637e8e5693a6b909824bef93b8d42ddb2c5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8ac29e017199ecbd51cb1b57b1dcd1b143ae381d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c291d5fa4c6f31c83200e8c517dff951b794aabb
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=80d1ecb325f9e9c0c2a47003f8968733ee21d82d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=356d10344d109eabd8ca51b2819052e9afb3f1c9
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=af63f9f6672ded588ae108937971c30afc0b7f0d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1cd4f6cf0fd8fa1c815829ac4672604c933e4180
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=43350bb3601cb74818975979bd830c990c9a0160
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=3eae1372ccbb69baaed5a33c4ad4c745615ba9a8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=2a4cdc4847bb50c60c28fe59f409519695266e66
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=ad68d24c38cf94e00f311253d4eea041db5ca47d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=668ecf0a765e8850df0865bdfb3c739df0f7532d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=f4d0cb7dd4141d59e008ce7613d1f0dd839bcc9d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e0418cfde05f07ad60662f72a672a19f28173277
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=649f99755f6086499e2419842ad3de9e9a615e2f
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=62858c7c39d9c4fff445ed48f3638fd97ab25917
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=a3902bd270b0a5d0da6951abf8f88189eafc71e8
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=60ae3ca7a322f7c2eccbc0752806849829bcbdd0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=7d9690af90273c85810db059083e432ebf750f0d
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c152d328ccaa9bfdff66e3aff059c1f55ebdf5a5
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5d4c31057e4b83a43c2f4129c2d135c3414a1e28
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=295dd07af090da011f7d3ba44766f723086ce976
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1dba7d4282e3a79963acffabc8ce25bb24599a93
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=d536fe7eae56df5cbbda9b9db6a3c0fac98611e7
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1d6f14c15dab5f2b03a4d07effdc3c9453a8ea6a
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c20088be8f7a1054fa40c66a32e94e6fc187688b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=dee8141f907b20d95a51aeaac7037c199909cfcb
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=c4aff61cc6bcd9a71905d86b7f82139f853d6f96
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1f3ce460d2dd934828b0db85a116ec753d6a888b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=926f8f45f5c1166ceed00614744274eb0b525873
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=46a76184c38b48643ae256aab68e575d51f6dece
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=4d1958c717e7e3abab00c1e501f7e8d31897a773
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=bf68962fbedac61717d1db2d53a3fa9debec3fe0
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=5458cf187cb922212114e44138b194886001cf46
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=af94ba2dfbd9f195bc39127c12b1844f248335fb
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=52aef340a7e4f28835ddd1c8cde993f18302974b
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=cabe84678ce50cccd42aa2df79078603dc6c5b26
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=6edb89f8cc499bc367f20a3c893c6c062916e4be
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=85c93d7ed573c76bc3f4330dd6fa9b61dd6ca73e
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=8342f7cd5c23d2ae40c66e62ce1afa06e2239166
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=65d530f2d11cd6c4f74e650c43f0f616620f5ca3
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=e607457a62051793598f12e8350446300d3756f9
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=1fadcb2b7d2c0223d8c112068ee2b054c5e4b6de
fetching https://api.github.com/repositories/658518/commits?access_token=819cb7cace7f4a01e41ac5d4e3a9f033c4c6bc15&top=master&last_sha=307e97f08b8902e49987f01fe90ac4dc39b061fb

In [28]:
commits_df.head()
print commits_df.commit[0],'\n'
print commits_df.parents[0]


{u'committer': {u'date': u'2014-02-17T16:37:08Z', u'name': u'Jonathan Frederic', u'email': u'jdfreder@calpoly.edu'}, u'author': {u'date': u'2014-02-17T16:37:08Z', u'name': u'Jonathan Frederic', u'email': u'jdfreder@calpoly.edu'}, u'url': u'https://api.github.com/repos/ipython/ipython/git/commits/8677e24755e7167a8c554eb08f72d36c7ab63930', u'tree': {u'url': u'https://api.github.com/repos/ipython/ipython/git/trees/08fe0a9fa675f0de30d47b60cb3ec178ea36f010', u'sha': u'08fe0a9fa675f0de30d47b60cb3ec178ea36f010'}, u'comment_count': 0, u'message': u'Merge pull request #5114 from minrk/empty-button\n\nuse non-breaking space for button with no description'} 

[{u'url': u'https://api.github.com/repos/ipython/ipython/commits/e4f2e7fbd68662be4315906ff5e453c42a03fd88', u'sha': u'e4f2e7fbd68662be4315906ff5e453c42a03fd88', u'html_url': u'https://github.com/ipython/ipython/commit/e4f2e7fbd68662be4315906ff5e453c42a03fd88'}, {u'url': u'https://api.github.com/repos/ipython/ipython/commits/9846a8ae1324a1a03d3b2cce6e33b4004a432078', u'sha': u'9846a8ae1324a1a03d3b2cce6e33b4004a432078', u'html_url': u'https://github.com/ipython/ipython/commit/9846a8ae1324a1a03d3b2cce6e33b4004a432078'}]

In [31]:
time_resol = '1w' # 1week
# count_authors = commits_df.author_name.resample('5D',how=uniquerAuthors)
# count_commits = commits_df.commit.resample('5D',how='count')


count_commits = commits_df.commit.resample(time_resol,how='count')
count_authors = commits_df.author_name.resample(time_resol,how=uniquerAuthors)
Time  = resampled_authors.index.values


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-17cf18629fb0> in <module>()
      4 
      5 
----> 6 count_commits = commits_df.commit.resample(time_resol,how='count')
      7 count_authors = commits_df.author_name.resample(time_resol,how=uniquerAuthors)
      8 Time  = resampled_authors.index.values

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas/core/generic.pyc in resample(self, rule, how, axis, fill_method, closed, label, convention, kind, loffset, limit, base)
   2536                               fill_method=fill_method, convention=convention,
   2537                               limit=limit, base=base)
-> 2538         return sampler.resample(self)
   2539 
   2540     def first(self, offset):

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas/tseries/resample.pyc in resample(self, obj)
     99             return obj
    100         else:  # pragma: no cover
--> 101             raise TypeError('Only valid with DatetimeIndex or PeriodIndex')
    102 
    103         rs_axis = rs._get_axis(self.axis)

TypeError: Only valid with DatetimeIndex or PeriodIndex

Plot Productive Burst


In [ ]:
from scipy import stats as S
la = np.log10(count_authors)
lc = np.log10(count_commits)
c = (la>0.)*(lc>0.)
la = la[c]
lc = lc[c]
fit = S.linregress(la,lc)
print fit

plot(la,lc,'.')
plot(la,la*fit[0]+fit[1])
xlabel("log10(active developers)")
ylabel("log10(commits)")

Plot Time Series


In [ ]:
resampled_authors = commits_df.author_name.resample(time_resol,how=uniquerAuthors)
resampled_commits = commits_df.commit.resample(time_resol,how='count')
Time  = resampled_authors.index.values

print len(Time),len(resampled_authors)
plot(Time,resampled_authors,'g-')
plot(Time,resampled_commits,'r-')

Export csv


In [ ]: