Check the setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Hourly public GitHub event archives for building repository-activity monitors without using BigQuery.
From source to product signal
GH Archive stores hourly gzip JSON of public GitHub events. Start with one UTC hour and stream the first events rather than loading the whole file. Do not use BigQuery for this guide, and public events still fall under GitHub's terms.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import gzip
import json
import pandas as pd
import requests
response = requests.get(
"https://data.gharchive.org/2026-08-17-15.json.gz",
stream=True,
timeout=60,
)
response.raise_for_status()
response.raw.decode_content = True
rows = []
with gzip.GzipFile(fileobj=response.raw) as archive:
for line in archive:
event = json.loads(line)
rows.append(
{
"type": event.get("type"),
"repo": (event.get("repo") or {}).get("name"),
}
)
if len(rows) >= 50:
break
events = pd.DataFrame(rows)
print(events.head())Test a useful signal
Test whether a streamed hour can power a bounded activity monitor.
GH Archive is a community source. Last verified 2026-08-18. Temporal coverage: 2011-present hourly public GitHub events.