Skip to content

fix(signing): doctor-signing now catches identity/GitHub-account mismatches - #50

Merged
githubrobbi merged 2 commits into
mainfrom
fix/doctor-signing-identity-check-v2
Jul 20, 2026
Merged

fix(signing): doctor-signing now catches identity/GitHub-account mismatches#50
githubrobbi merged 2 commits into
mainfrom
fix/doctor-signing-identity-check-v2

Conversation

@githubrobbi

@githubrobbi githubrobbi commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • just doctor-signing is the readiness checklist ADOPTING.md's step 5.3 says to run "green for every committer" before turning on the required_signatures branch-protection rule. It had a blind spot: a key that signs correctly and is registered on GitHub can still produce commits that render Unverified on GitHub (reason no_user) if git config user.email isn't a verified address on the same GitHub account the key is registered to. None of the existing checks catch this - they all passed.
  • Found live in this session: several commits were correctly signed under clauderobert@nios.net, but the signing key is registered to the githubrobbi GitHub account, whose verified emails don't include that address. doctor-signing reported fully green throughout; only checking gh api .../commits after the fact caught it.
  • Adds the missing check: compares user.email against gh api user/emails. Same graceful-degrade posture as the existing GPG-key-registration check (advisory info note, not a hard fail, when the token lacks the user:email scope).

Test plan

  • Ran just doctor-signing locally after fixing the identity that caused today's incident - new check reports correctly (degrades to an info note here since the local gh token lacks user:email scope, same posture as the pre-existing GPG-key check).
  • lint-fast + lint-pre-push gates passed locally.

Related

This repo's own main-protection ruleset is missing the required_signatures rule that ADOPTING.md step 5.3 calls for - a separate, repo-settings-side follow-up (not a code change, needs to go through gh api with elevated permission) tracked outside this PR.

githubrobbi and others added 2 commits July 20, 2026 15:51
…atches

A signing key can pass every existing doctor-signing check - gpgsign on,
key configured, key can actually sign, key registered on GitHub - and
commits STILL render "Unverified" (reason: no_user) if git's user.email
isn't a verified address on the same GitHub account that owns the key.
GitHub can attribute the cryptographic signature but not the commit
identity, and none of the prior checks catch this: it's a silent gap
between "signing works" and "commits verify."

Found live: today's session signed several commits correctly under a
git identity (clauderobert@nios.net) that wasn't a verified email on the
account (githubrobbi) the configured key is registered to. doctor-signing
reported fully green the whole time; only gh api .../commits caught it
after the fact.

Adds the missing check: user.email against `gh api user/emails`. Same
graceful-degrade posture as the existing GPG-key-registration check
(advisory info note, not a hard fail, when the token lacks the
user:email scope) so this stays a soft, informative check consistent
with the rest of the doctor.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@githubrobbi
githubrobbi added this pull request to the merge queue Jul 20, 2026
Merged via the queue into main with commit 62d56db Jul 20, 2026
19 checks passed
@githubrobbi
githubrobbi deleted the fix/doctor-signing-identity-check-v2 branch July 20, 2026 23:23
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