scripts/fetch_year_in_review.py (26 lines of code) (raw):
# Copyright 2018 Twitter, Inc.
# SPDX-License-Identifier: Apache-2.0
"""
Aggregate Summary
API: /repo-groups/:repo_group_id/aggregate-summary
Returns the current count of watchers, stars, and forks and the counts of all commits,
committers, and pull requests merged between a given beginning and end date (default between
now and 365 days ago).
Update _metadata/augur/aggregate_summary.json
"""
import datetime
import json
import os
import requests
API_ENDPOINT = "http://newtwitter.augurlabs.io/api/unstable"
PATH_TO_METRICS_DATA = "data"
DATESTAMP = datetime.datetime.now().date().isoformat()
print("LOG: Assuming the current path to be the root of the metrics repository.")
AGGREGATE_SUMMARY = {}
aggregate_summary_json_file = f"{PATH_TO_METRICS_DATA}/augur/aggregate_summary.json"
if os.path.exists(aggregate_summary_json_file):
with open(aggregate_summary_json_file) as f:
AGGREGATE_SUMMARY = json.load(f)
# the repo_group_id for Twitter org is 25155
print(f"Sending request to {API_ENDPOINT}/repo-groups/25155/aggregate-summary")
r = requests.get(f"{API_ENDPOINT}/repo-groups/25155/aggregate-summary")
try:
if r.ok:
print("OK!")
AGGREGATE_SUMMARY = r.json()
else:
print(f"Error! Response code {r.status_code}")
print(r.content.decode("utf-8"))
except Exception as e:
print(f"Error: Something went wrong with aggregate summary - {e}")
with open(aggregate_summary_json_file, "w+") as f:
json.dump(AGGREGATE_SUMMARY, f)