Skip to content

fix(startup): stop setting git committer.* — it CLA-blocks every fleet PR - #950

Merged
sonichi merged 1 commit into
mainfrom
fix/drop-git-committer-attribution
May 21, 2026
Merged

sonichi merged 1 commit into
mainfrom
fix/drop-git-committer-attribution

Conversation

@sonichi

@sonichi sonichi commented May 21, 2026

Copy link
Copy Markdown
Owner

Problem

src/startup.sh derived committer.name / committer.email from stand-identity.json on every boot, so git log %cn would show which fleet host (Mini, MacBook…) crafted a commit. The block's comment explicitly reasoned that only the author gates CLA-Assistant, so the committer was "free to carry per-host attribution."

That reasoning is wrong. git 2.31+ honors committer.* config natively, so the committer became <host>@noreply.sutando.local — a non-GitHub identity with no CLA signature. CLA-Assistant checks both author and committer.

Result: every commit authored on a fleet host failed the CLA gate on the committer field alone, even with a CLA-signed author. PR #947 and others were blocked this way; multiple contributors reported being stuck.

Verified on this machine — commit 54d78a7:

author:    Chi Wang <4250911+sonichi@users.noreply.github.com>   ✅ CLA-signed
committer: Echo Act IV (Mini) <mac-mini@noreply.sutando.local>   ❌ no GitHub user

Fix

  • Remove the committer.*-setting block from startup.sh.
  • Additionally --unset committer.name/email on every startup, so any host that already has the stale keys in .git/config self-heals on next boot — no manual per-host cleanup.

After this, committer falls back to user.* (the CLA-signed GitHub-noreply identity), matching the author.

Note

Per-host attribution isn't worth blocking every PR. If it's still wanted, it belongs in a commit-message trailer (CLA-Assistant ignores trailers) — not the committer identity. Out of scope here; this PR just unblocks the gate.

🤖 Generated with Claude Code

…t PR

startup.sh derived `committer.name`/`committer.email` from
stand-identity.json so `git log %cn` showed which fleet host (Mini,
MacBook…) crafted each commit. The feature comment assumed only the
*author* gates CLA-Assistant — but git 2.31+ honors `committer.*` config
natively, so the COMMITTER became `<host>@noreply.sutando.local`, a
non-GitHub identity with no CLA signature.

CLA-Assistant checks BOTH author and committer. Result: every commit
from a fleet host failed the CLA gate — PR #947 and others were blocked
purely on the committer field, even with a CLA-signed author.

Remove the attribution block. Also actively `--unset committer.*` on
every startup so hosts that already have the stale config in
`.git/config` self-heal on next boot (no manual cleanup needed).

Per-host attribution, if still wanted, belongs in a commit-message
trailer — CLA-Assistant ignores trailers; it does not ignore the
committer identity.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sonichi

sonichi commented May 21, 2026

Copy link
Copy Markdown
Owner Author

@CLAassistant check

@sonichi
sonichi merged commit 3b16f9a into main May 21, 2026
1 check passed
@sonichi
sonichi deleted the fix/drop-git-committer-attribution branch May 21, 2026 04:27
liususan091219 pushed a commit to liususan091219/sutando-fork that referenced this pull request May 28, 2026
…t PR (sonichi#950)

startup.sh derived `committer.name`/`committer.email` from
stand-identity.json so `git log %cn` showed which fleet host (Mini,
MacBook…) crafted each commit. The feature comment assumed only the
*author* gates CLA-Assistant — but git 2.31+ honors `committer.*` config
natively, so the COMMITTER became `<host>@noreply.sutando.local`, a
non-GitHub identity with no CLA signature.

CLA-Assistant checks BOTH author and committer. Result: every commit
from a fleet host failed the CLA gate — PR sonichi#947 and others were blocked
purely on the committer field, even with a CLA-signed author.

Remove the attribution block. Also actively `--unset committer.*` on
every startup so hosts that already have the stale config in
`.git/config` self-heal on next boot (no manual cleanup needed).

Per-host attribution, if still wanted, belongs in a commit-message
trailer — CLA-Assistant ignores trailers; it does not ignore the
committer identity.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.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