Data & mapping
Every number in Repostream is traceable. Here is where each field comes from, how it is derived, and where it shows up.
Sources
- GitHub REST API
- OSSInsight
- Snapshot store
→↓
Ingest & normalize
- Match repos
- Diff snapshots
- Derived fields
→↓
Cache / API
- Period aggregates
- Rank table
- Sparkline series
→↓
Portal views
- Trending
- Languages
- Watchlist
- Detail modal
Filter by source:
| Field | Source | How it's derived | Where it's used |
|---|---|---|---|
| owner/name | Split from full_name on the repository object | listspotlightdetailwatchlistlinks | |
| desc | Repository description, verbatim | listspotlightdetail | |
| lang | Primary language + GitHub language color | listfilterLanguages pagedetail | |
| stars | stargazers_count | list numssort:totaldetail | |
| forks | forks_count | list numsdetail | |
| g.day / g.week / g.month | stars_now − stars_at(period_start) via snapshot diff (OSSInsight fallback) | momentum barsspotlight numbermetricssort:velocityLanguages | |
| spark[] | Daily star totals over the recent window, normalised to 0–100 | sparklinesdetail chart | |
| prev (rank & Δrank) | Rank repos by stars gained per period; store last period's rank for the delta | rank chipssort:movementwas #N | |
| new-entry flag | True when prev is null: no rank recorded for the previous period | NEW chipmetrics |
- GET /search/repositories?q=stars:>500 pushed:>{date}&sort=stars
- GET /repos/{owner}/{repo}
Authoritative for totals and metadata, but has NO time-windowed “stars gained” field; search is rate-limited.
- /trending
- star-history endpoints
Provides growth figures plus the historical series behind every sparkline.
- PostgreSQL table star_snapshots
- daily capture { repo, stargazers_count, captured_at }
Most reliable basis for velocity and rank-movement diffing.
- computed in the ingest job by diffing snapshots
Never fetched directly; recomputed whenever a new snapshot lands.
Fallback behaviour: when snapshots have not accumulated yet, or the network is unavailable, the portal renders the bundled seed dataset so every view stays usable.