Skip to content

fix(repo): collapse the stale commit identities to one canonical author - #263

Merged
forkwright merged 1 commit into
mainfrom
fix/mailmap-stale-identity
Aug 15, 2026
Merged

fix(repo): collapse the stale commit identities to one canonical author#263
forkwright merged 1 commit into
mainfrom
fix/mailmap-stale-identity

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Finding

This repo is public and its history resolves to four author identities for one person, one of which names an unrelated venture:

identity commits
forkwright <cody.kickertz@pm.me> 57
forkwright <cody.kickertz@gmail.com> 14
Cody Kickertz <cody.kickertz@gmail.com> 10
admin <admin@ardentleatherworks.com> 8

admin@ardentleatherworks.com and admin@forkwright.dev also appear in Co-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 blame and 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-mailmap collapses 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/%ce alone reports a clean repo while the address is still in the message body.

Done when: git shortlog -sne --all lists one human author.

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
forkwright merged commit 8a47e08 into main Aug 15, 2026
10 checks passed
@forkwright
forkwright deleted the fix/mailmap-stale-identity branch August 15, 2026 18:57
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant