Commits across several projects and branches
Built for a time-tracker: what was committed while a timer ran, across whatever projects and branches you name.
Commits are deduplicated by hash and annotated with every branch they were found on, so work merged develop → main is billed once. A project that fails carries an error and a zero count while the others still return their commits.
Authentication
Create one in the app under Settings → API keys. It is shown once and stored only as a hash, so it cannot be recovered — losing it means issuing a new one.
A key reads the endpoints below and nothing else. It is not a session: it cannot create or delete projects, change settings, or issue another API key. It sees exactly what its owner sees, re-checked on every request, so removing someone’s access to a project removes it from their key on the very next call.
The same key, sent as Authorization: Bearer <key>.
Query parameters
Comma-separated project ids or names. Default: every project the key can read. Maximum 60 per call. An unknown name is a 404, not an empty list — a typo that returned nothing would look exactly like a quiet week.
ISO-8601. Filters on COMMIT date.
ISO-8601.
all, or a comma-separated list such as develop,main. A branch a project does not have is skipped quietly. all cannot be combined with named branches.
Files changed / insertions / deletions. false is faster.