How the verdict is calculated
Three GitHub API calls per repository: the repo itself, the most recent commit on its default branch, and its latest release. Rules are applied in order — the first one that matches wins.
| Condition | Verdict |
|---|---|
| Repository is archived | Archived |
| No commit in over 365 days | Likely abandoned |
| No commit in over 90 days | Slowing down |
| Commits are recent, but no release in over 365 days | Shipping stalled |
| None of the above | Active |
Why last commit, not pushed_at: the repo
object's pushed_at is bumped by a push to any branch, so
a project can look updated today while its default branch has not moved in a
year. This reads the default branch directly.
Why star count is not a signal: stars only ever go up. They record how popular a project once was, not whether anyone still maintains it. Plenty of 40k-star projects have not shipped a release in over a year.
Rate limit: GitHub allows 60 unauthenticated requests per hour per IP address. These calls are made by your own browser, so the budget is yours alone — roughly 20 repositories an hour — and no one else's usage can exhaust it.