Files with the highest combination of change frequency and waste ratio. These are candidates for refactoring or closer review.
Cumulative contribution over time. Watch developers race as positions shift month by month.
Commit activity distribution by hour and day of week across all contributors in this repository.
Performance has many faces. Navigara breaks down the effort to visualize what parts of codebase has been changed and where energy flowed. Our Architect AI can break the performance even further into particular components and patterns.
Breakdown of file changes over time. Play the timeline to see how change types evolved across periods.
Monthly overview of bugs introduced and fixed, based on symbol-level commit analysis. Fixes show whether the original author fixed their own bug (self-fix) or someone else did (cross-fix).
Bug attribution uses symbol-level matching from commit history. For each fix commit, we look at the changed symbols (functions, classes, methods) and trace backwards to find who last modified that symbol in a non-fix commit. This person is the probable bug introducer. The algorithm only works when commits have symbol-level data from the Navigara analysis engine โ the coverage rate shows what percentage of fix commits had this data available.
The current metrics model has a semantic inversion: when developer A creates a feature with a bug, they receive grow (positive). When developer B fixes that bug, they receive waste (negative). The bug creator is rewarded while the fixer is penalized. Bug attribution addresses this by explicitly tracking who introduced bugs and who fixed them, providing a more accurate picture of code quality contributions.
Currently computed client-side from commit data. Ideal server-side endpoint:
POST /v1/repositories/{repositoryId}/bug-attributions
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z"
}
Response:
{
"totalBugsAttributed": 42,
"selfFixRate": 35,
"coverageRate": 78,
"attributions": [
{
"filePath": "src/lib/auth.ts",
"symbol": "validateToken",
"introducer": { "name": "Alice", "email": "alice@co.com", "commitSha": "abc123" },
"fixer": { "name": "Bob", "email": "bob@co.com", "commitSha": "def456" },
"fixedAt": "2025-06-15T10:30:00Z",
"isSelfFix": false
}
]
}Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment โ the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits in this repository.
| Hash | Message | Author | Effort |
|---|---|---|---|
| a276aa8 | build(deps): Bump codecov/codecov-action from 5.5.3 to 6.0.0 (#4123) | dependabot[bot] | maint |
| 4e5486e | fix: Synchronize `requestCount` in rate limit tests (#4124) | MangoMaker | maint |
| 8f1e513 | chore: Simplify `generate.sh` by removing `git worktree` and using generator-based check (#4120) | Dhananjay Mishra | grow |
| 591699f | docs: Improve comments in /examples (#4122) | Oleksandr Redko | maint |
| 88c87d1 | chore: Use `golangci-lint-action`; remove `newreposecretwithlibsodium` (#4119) | Oleksandr Redko | maint |
| a12b8d7 | feat: Add custom image endpoints for GitHub-hosted runners (#4101) | Austen Stone | grow |
| acab708 | chore: Cache custom golangci-lint binaries in GHA workflow (#4116) | Oleksandr Redko | maint |
| 19c1a8a | build(deps): Bump github.com/ProtonMail/go-crypto from 1.4.0 to 1.4.1 in /example (#4115) | dependabot[bot] | โ |
| 18d15a8 | build(deps): Bump golang.org/x/tools from 0.29.0 to 0.43.0 in /tools/extraneous-new (#4114) | dependabot[bot] | โ |
| de0e2b5 | build(deps): Bump codecov/codecov-action from 5.5.2 to 5.5.3 (#4112) | dependabot[bot] | maint |
build(deps): Bump codecov/codecov-action from 5.5.3 to 6.0.0 (#4123)
fix: Synchronize `requestCount` in rate limit tests (#4124)
chore: Simplify `generate.sh` by removing `git worktree` and using generator-based check (#4120)
docs: Improve comments in /examples (#4122)
chore: Use `golangci-lint-action`; remove `newreposecretwithlibsodium` (#4119)
feat: Add custom image endpoints for GitHub-hosted runners (#4101)
chore: Cache custom golangci-lint binaries in GHA workflow (#4116)
build(deps): Bump github.com/ProtonMail/go-crypto from 1.4.0 to 1.4.1 in /example (#4115)
build(deps): Bump golang.org/x/tools from 0.29.0 to 0.43.0 in /tools/extraneous-new (#4114)
build(deps): Bump codecov/codecov-action from 5.5.2 to 5.5.3 (#4112)
Average context complexity and engagement score of file changes over time. Higher complexity means more intricate changes; higher impact means broader effect on the codebase.
Contributors ranked by total performance (ETV) from analyzed commits.
| # | |||||
|---|---|---|---|---|---|
| 1 | Oleksandr Redko82 commits | 14.2 | 1.1 | 11.1 | 2.1 |
| 2 | Glenn Lewis83 commits | 10.7 | 1.1 | 7.3 | 2.4 |
| 3 | S s4mur4i1 commits | 6.5 | 3.3 | 3.2 | 0 |
| 4 | M merchantmoh4 commits | 5.9 | 3.1 | 2.9 | 0 |
| 5 | Dhananjay Mishra21 commits | 5.7 | 2.9 | 2.7 | 0 |
| 6 | W wasuremono12715 commits | 3.9 | 1.4 | 2.5 | 0 |
| 7 | 1 155747305+maishivamhoo1236 commits | 2.6 | 1.1 | 1.4 | 0.1 |
| 8 | S stephenotalora2 commits | 2.4 | 1 | 1.3 | 0.1 |
| 9 | 5 56205143+adrian-saunders1 commits | 2.2 | 0 | 2.2 | 0 |
| 10 | 4 44255923+atilsensalduz4 commits | 2.2 | 1.2 | 1 | 0 |
| 11 | J jorgeferrerolinacero5 commits | 2.2 | 1 | 1.2 | 0 |
| 12 | 6 60017052+elminster-aom9 commits | 2.1 | 0.9 | 1.2 | 0 |
| 13 | Steve Hipwell15 commits | 2.1 | 0.9 | 1.1 | 0.2 |
| 14 | 1 116002362+tim-goto1 commits | 1.5 | 0.8 | 0.7 | 0 |
| 15 | A austenstone4 commits | 1.5 | 0.8 | 0.7 | 0 |
| 16 | 4 4822814+wmouchere1 commits | 1.3 | 0.6 | 0.7 | 0 |
| 17 | J jndzero22 commits | 1.2 | 0.6 | 0.6 | 0 |
| 18 | 1 13594679+tmelliottjr1 commits | 1.2 | 0.5 | 0.6 | 0 |
| 19 | A abhishek2 commits | 1.1 | 0.5 | 0.5 | 0 |
| 20 | G gjasny2 commits | 0.9 | 0.4 | 0.6 | 0 |
| 21 | N nurzhanmuratkhan6 commits | 0.8 | 0.1 | 0.8 | 0 |
| 22 | 2 20923769+amreshh1 commits | 0.8 | 0.5 | 0.3 | 0 |
| 23 | A alexiscouvreur.pro2 commits | 0.8 | 0.4 | 0.4 | 0 |
| 24 | 1 135415819+dmclink1 commits | 0.7 | 0.3 | 0.4 | 0 |
| 25 | J joannaakl1 commits | 0.7 | 0.3 | 0.4 | 0 |
| 26 | 8 8502556+docemmetbrown2 commits | 0.6 | 0.3 | 0.3 | 0 |
| 27 | 2 2565382+joshlarsen1 commits | 0.5 | 0 | 0.5 | 0 |
| 28 | M mathew.clegg1 commits | 0.5 | 0.3 | 0.2 | 0 |
| 29 | R rupokghosh2911 commits | 0.4 | 0 | 0.4 | 0 |
| 30 | H henrik94lundstrom1 commits | 0.4 | 0.3 | 0.2 | 0 |
| 31 | E e72171 commits | 0.4 | 0.2 | 0.2 | 0 |
| 32 | C colbylwilliams2 commits | 0.4 | 0.1 | 0.3 | 0 |
| 33 | 1 166510074+mdfleury-wbd3 commits | 0.3 | 0.2 | 0.2 | 0 |
| 34 | 4 49699333+dependabot[bot]94 commits | 0.3 | 0 | 0.3 | 0 |
| 35 | 1 1703710+cyberious1 commits | 0.3 | 0.2 | 0.1 | 0 |
| 36 | C ctadeu3 commits | 0.3 | 0.1 | 0.2 | 0 |
| 37 | 4 47085823+jiayangzhou2 commits | 0.3 | 0.1 | 0.2 | 0 |
| 38 | 8 82088784+linakaci-pro1 commits | 0.3 | 0.1 | 0.2 | 0 |
| 39 | 1 100484364+ktruedat1 commits | 0.3 | 0.1 | 0.2 | 0 |
| 40 | P pmuratov1 commits | 0.3 | 0.1 | 0.1 | 0 |
| 41 | 2 2119212+jsoref2 commits | 0.3 | 0 | 0.2 | 0 |
| 42 | 1 100356+abtris1 commits | 0.3 | 0 | 0.1 | 0.2 |
| 43 | 5 57910323+danimeyer1 commits | 0.3 | 0.1 | 0.1 | 0 |
| 44 | A andygrunwald1 commits | 0.3 | 0 | 0.2 | 0 |
| 45 | V ville.skytta3 commits | 0.3 | 0.1 | 0.2 | 0 |
| 46 | M manav.acno11 commits | 0.3 | 0 | 0.3 | 0 |
| 47 | 1 128178765+nithish-951 commits | 0.3 | 0.1 | 0.1 | 0 |
| 48 | S sinnerpocht1 commits | 0.2 | 0.1 | 0.2 | 0 |
| 49 | P pavlos.tzianos1 commits | 0.2 | 0.1 | 0.1 | 0 |
| 50 | 1 124438543+rockygeekz1 commits | 0.2 | 0.1 | 0.2 | 0 |
| 51 | 3 305414+sheeeng1 commits | 0.2 | 0.1 | 0.1 | 0 |
| 52 | L leonard.sheng.sheng.lee1 commits | 0.2 | 0.1 | 0.1 | 0 |
| 53 | 1 112164024+smazmi1 commits | 0.2 | 0.1 | 0.1 | 0 |
| 54 | G gerrit911 commits | 0.1 | 0.1 | 0.1 | 0 |
| 55 | 1 144216124+maaarcelino2 commits | 0.1 | 0 | 0.1 | 0 |
| 56 | 8 84318361+tstollin1 commits | 0.1 | 0.1 | 0.1 | 0 |
| 57 | C charanvfxartist1 commits | 0.1 | 0 | 0.1 | 0 |
| 58 | 8 8136445+sparshev1 commits | 0.1 | 0.1 | 0 | 0 |
| 59 | L ldez1 commits | 0.1 | 0 | 0.1 | 0 |
| 60 | 9 99900942+pputman-clabs2 commits | 0.1 | 0.1 | 0.1 | 0 |
| 61 | J jsyin11 commits | 0.1 | 0.1 | 0 | 0 |
| 62 | E ericmort2 commits | 0.1 | 0 | 0.1 | 0 |
| 63 | J james1 commits | 0.1 | 0.1 | 0.1 | 0 |
| 64 | I irvingmg1 commits | 0.1 | 0 | 0.1 | 0 |
| 65 | S sanjayygowdaa031 commits | 0.1 | 0 | 0 | 0.1 |
| 66 | M mrecachinas1 commits | 0.1 | 0 | 0.1 | 0 |
| 67 | V verma1090aman1 commits | 0.1 | 0 | 0.1 | 0 |
| 68 | 8 8060970+dnwe3 commits | 0.1 | 0 | 0.1 | 0 |
| 69 | B bored-engineer1 commits | 0.1 | 0 | 0.1 | 0 |
| 70 | 8 81029514+eranturgeman1 commits | 0.1 | 0 | 0 | 0 |
| 71 | G github1 commits | 0.1 | 0 | 0 | 0.1 |
| 72 | M manue11 commits | 0.1 | 0.1 | 0 | 0 |
| 73 | 1 155956228+niveshdandyan1 commits | 0.1 | 0 | 0.1 | 0 |
| 74 | L leo.sale1 commits | 0.1 | 0.1 | 0 | 0 |
| 75 | 2 23391543+mikutas1 commits | 0.1 | 0 | 0.1 | 0 |
| 76 | A abinand09112 commits | 0.1 | 0 | 0 | 0.1 |
| 77 | G galmenashofri1 commits | 0.1 | 0.1 | 0 | 0 |
| 78 | 5 52138617+dblinkhorn1 commits | 0.1 | 0 | 0 | 0.1 |
| 79 | 1 117012255+kyyril1 commits | 0.1 | 0 | 0.1 | 0 |
| 80 | R raisa.kabir20101 commits | 0.1 | 0 | 0.1 | 0 |
| 81 | 7 72999113+bartventer1 commits | 0.1 | 0 | 0.1 | 0 |
| 82 | 5 58725116+alkak952 commits | 0.1 | 0 | 0.1 | 0 |
| 83 | E eyalk1 commits | 0.1 | 0 | 0 | 0 |
| 84 | S shubhadeepdhar131 commits | 0.1 | 0 | 0 | 0 |
| 85 | T tom1 commits | 0.1 | 0 | 0.1 | 0 |
| 86 | M me1 commits | 0.1 | 0 | 0.1 | 0 |
| 87 | 4 45711958+kinsue1 commits | 0.1 | 0 | 0.1 | 0 |
| 88 | J jbouyoud1 commits | 0.1 | 0 | 0 | 0 |
| 89 | S scott1 commits | 0.1 | 0 | 0 | 0 |
| 90 | 1 10603766+hoenn1 commits | 0.1 | 0 | 0 | 0 |
| 91 | T tom.feigin2 commits | 0.1 | 0 | 0 | 0 |
| 92 | Y youichi09291 commits | 0.1 | 0 | 0.1 | 0 |
Repository
go-github
Go library for accessing the GitHub v3 API
Average Developer Performance (ETV)
Year-by-year Trend:+374%