Pushed commits carried the author t <an email address> instead of the repo identity. The likely source was a test fixture’s GIT_AUTHOR_* or GIT_COMMITTER_* environment leaking into the child process that made the commit.

A commit helper that refuses test identities

The commit helper now refuses to commit as a test identity. It reads the identity from two places:

  • git config
  • the GIT_AUTHOR_* and GIT_COMMITTER_* environment variables

It treats either of these as a test identity:

  • the address t@t
  • the name t

The test suite opts out of the check through conftest. Tests cover the refusal.

When git var fails or times out

The identity check also refuses the commit when git var fails or times out, instead of proceeding. Tests cover this path too.

What we don’t know

We know the symptom, the suspected source and the guard. The cause stays “likely a fixture’s environment.”

The guard refuses the commit in two cases: a test identity found, and an identity check that can’t complete. A git var that fails or times out is refused instead of proceeding.