Skip to content

How gitdebt works

gitdebt charts the star history of any public GitHub repository and pairs it with health signals read from the git history itself: change frequency, fix-labelled changes, contributors, and recent TODO/FIXME movement.

What we compute

Star history comes from GitHub's API; the repo-debt stats come from a shallow git clone analyzed on our side. Each signal is a pure, unit-tested function over that data.

Star history
We keep only the timestamp of each public star and plot the cumulative count over time. You can view it against calendar dates or aligned to days-since-first-star to compare growth shapes. Several repos can be overlaid on shared axes, and the chart embeds in a README.
Fix-labelled changes
We count how often each file appears in commits whose message matches a fix heuristic. This describes fix-labelled history; it does not prove a bug or measure code quality.
File change frequency
A straight count of how many analyzed commits touched each file. It identifies frequently revisited files without claiming those changes were unstable or defective.
Contributors
Everyone who has authored commits, aggregated from the git log so it reflects actual shipped code rather than profile metadata.
Language lines
A per-language lines-of-code breakdown of the current HEAD, measured with tokei over a materialized checkout — so you can see where the codebase's mass sits.
Commit heatmap
The last 52 weeks of commit activity, bucketed by day, to show how steadily (or sporadically) the project moves.
Recent TODO / FIXME movement
The recent running movement of TODO, FIXME, and similar source markers inside the analyzed commit window. It is a directional maintenance signal, not a complete backlog.

Freshness & caching

The first time a repo is requested it's cold: star history starts in the background while the git clone is analyzed for repo-health charts. The report shows a measured live ETA, then fills each finished section on its own—no reload needed.

Once analyzed, results are cached and served from the edge, so repeat views are near-instant. Popular repos refresh more often; our browser extension reports the repos people are actively viewing so their data stays current. Very large histories build in durable windows and appear only after the complete snapshot is stored.

What gitdebt does not do

gitdebt does not flag stars as fake, real, or suspicious, and it doesn't score individual accounts. That can't be done correctly without privileged access to GitHub's full dataset, so we don't pretend to. For star history we only ever use stargazer timestamps.

Sign-in is optional

Every public repository report works without an account. GitHub sign-in currently adds a one-click shortcut to your profile-wide aggregate report; it does not unlock private repository analysis or request write access.