def monitor_inventory_metrics(synonym_mappings):
global REPO_SCRAPE_TIMES
minus_three_months = (datetime.now() - timedelta(3 * 365 / 12)).isoformat().split('.')[0]
def git():
return Github(get_access_token())
for repo in git().search_repositories('org:soundcloud pushed:>' + minus_three_months):
owner = get_owner(synonym_mappings, repo)
REPO_SCRAPE_TIMES[(owner, repo.name)] = time.time()
pulls = list(repo.get_pulls())
observe_inventory(owner, repo.name, pulls)
manifests = [None]
try:
manifests = list(git().search_code(
'repo:soundcloud/%s language:json filename:*manifest*.json' % repo.name))
except GithubException:
logger.error('Could not search repo %s!' % repo.name)
observe_features(owner, repo.name, manifests)
# zero-out deleted repos
dead_repos = {tup: last_time for tup, last_time in REPO_SCRAPE_TIMES.iteritems() if
last_time < time.time() - 60 * 60}
for owner, repo_name in dead_repos.keys():
del REPO_SCRAPE_TIMES[(owner, repo_name)]
observe_inventory(owner, repo_name, [])
评论列表
文章目录