RepoRoulette: Randomly Sample GitHub Repositories¶
RepoRoulette: Randomly Sample GitHub Repositories.
A Python library for randomly sampling GitHub repositories using multiple methods: - ID-based sampling: Probes random repository IDs - Temporal sampling: Weighted sampling based on repository activity by time period - BigQuery sampling: Advanced querying using Google BigQuery’s GitHub dataset - GitHub Archive sampling: Event-based sampling from GitHub Archive files
Example
Hits the live GitHub API, so shown as a code block rather than a doctest:
from reporoulette import sample
results = sample(method="temporal", n_samples=10)
print(f"Found {len(results['samples'])} repositories")
RepoRoulette provides multiple methods for randomly sampling GitHub repositories:
ID-based sampling: Probes random repository IDs
Temporal sampling: Weighted sampling based on repository activity by time period
BigQuery sampling: Advanced querying using Google BigQuery’s GitHub dataset
GitHub Archive sampling: Event-based sampling from GitHub Archive files
Quick Start¶
from reporoulette import sample
# Sample 10 repositories using temporal sampling
results = sample(method='temporal', n_samples=10)
print(f"Found {len(results['samples'])} repositories")
Contents:
- Sample Function
- ID Sampler
- Temporal Sampler
- BigQuery Sampler
- GitHub Archive Sampler
- Randomization Validation Report
- P1 - GH Archive ground-truth inclusion test (GHArchiveSampler)
- P3 - Seed stability (pairwise KS across seeds)
- P2 - Live IDSampler audit
- P4 - Temporal sampler bias, quantified (measurement, not pass/fail)
- P5 - BigQuery live check (BigQuerySampler)
- P6 - Live API contract checks
- P7 - BigQuery dry-run validation (free)