fix(repo): collapse the stale commit identities to one canonical author - #263
Merged
Conversation
This repo is public and its history accumulated several author identities for one person: a personal address, an employer address, an unrelated venture's address, a malformed one with no TLD, and machine-local variants. Contributor views, blame and shortlog all showed them as different people, and two of them name organisations that have nothing to do with this project. A mailmap fixes attribution at read time without rewriting history. A rewrite would un-publish nothing -- the addresses are already in every existing clone and on GitHub -- while invalidating every outstanding worktree and PR. Uses the email-only form so it matches regardless of the name recorded on the commit; the name+email form missed several stragglers that used a different display name with the same address. Bot and agent identities are deliberately left distinct: they are separate actors, not spellings of the maintainer. Records the trap in the file itself: a mailmap resolves author and committer fields but does NOT edit Co-authored-by trailers, which is what a squash-merge writes. Checking those fields alone reports a clean repo while the address is still present in the message body.
forkwright
pushed a commit
that referenced
this pull request
Aug 15, 2026
🤖 I have created a release *beep* *boop* --- ## [1.6.1](v1.6.0...v1.6.1) (2026-08-15) ### Bug Fixes * **repo:** collapse the stale commit identities to one canonical author ([#263](#263)) ([8a47e08](8a47e08)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finding
This repo is public and its history resolves to four author identities for one person, one of which names an unrelated venture:
forkwright <cody.kickertz@pm.me>forkwright <cody.kickertz@gmail.com>Cody Kickertz <cody.kickertz@gmail.com>admin <admin@ardentleatherworks.com>admin@ardentleatherworks.comandadmin@forkwright.devalso appear inCo-authored-by:trailers.Why a mailmap rather than a history rewrite
The addresses are already published in every clone and fork. A rewrite would un-publish nothing while invalidating every outstanding clone and PR. A mailmap corrects attribution at read time in
git log,git shortlog,git blameand GitHub's contributor views.Correction
Five mappings to one canonical identity, using the email-only form so each matches regardless of the display name recorded on the commit. Bot identities (
forge-bot,github-actions[bot],dependabot[bot]) are deliberately left distinct — separate actors, not spellings of the maintainer.Verified:
git log --all --use-mailmapcollapses 89 commits to one human author.One trap, recorded in the file
A mailmap resolves author and committer fields but does not edit
Co-authored-by:trailers, which is what a GitHub squash-merge writes. Checking%ae/%cealone reports a clean repo while the address is still in the message body.Done when:git shortlog -sne --alllists one human author.