vcs-git only.Expand description
Canonical author identity and bot-author detection.
Backend-agnostic: the git backend resolves a commit signature
through .mailmap and hands the canonical (name, email) byte
pairs here. The email (lowercased) is the identity key — two commits
with the same canonical email count as one author even under
differing display names. Raw identities never leave the process;
--emit-author-details opts into a SHA-256 hash of the canonical
email instead of the plaintext.
The emitted hash is a stable pseudonym, not anonymization. It
avoids putting plaintext emails in output/caches and deters casual
disclosure, but it is not cryptographically irreversible: an
email is low-entropy and enumerable, so an attacker holding a
candidate set of emails (commit histories are public) can recover the
mapping by hashing each candidate or via a precomputed email→hash
table — the same weakness that broke Gravatar’s email hashing. See
AuthorId::hashed for the threat model.
Users who need stronger resistance can opt into keyed hashing with a
secret AuthorHashKey (--author-hash-key, issue #956): the emitted
digest becomes an HMAC the attacker cannot reproduce without the key.
See AuthorId::emit_hashed.
Structs§
- Author
Hash Key - A secret key for the opt-in keyed author-identity hashing
(
--author-hash-key, issue #956). - Author
Id - A canonical author identity, keyed by lowercased email.
- BotFilter
- Matches author identities against a bot-exclusion pattern.