Safeguard
Security Guides•

GitHub vigilant mode: flagging unsigned commits as Unverified

Vigilant mode marks every commit and tag under your name with a verification status, so an unsigned commit that claims to be you shows as Unverified.

Safeguard Security Team
3 min read

Vigilant mode is a GitHub account setting that gives every commit and tag attributed to you a verification status, not just the signed ones. Once it is on, an unsigned commit using your identity shows as Unverified, which makes impersonation visible. Turn it on only after you sign everything.

The problem it addresses

Git lets anyone set the author name and email on a commit. The metadata alone proves nothing about who wrote it. Without vigilant mode, a signed commit can show Verified, but an unsigned one shows no status at all, so a forged commit looks the same as an ordinary old one.

What the statuses mean

With vigilant mode on, GitHub's documentation describes three outcomes:

  • Verified: the commit is signed, the signature checks out, and the committer is the only author who enabled vigilant mode.
  • Partially verified: the signature checks out, but an author who is not the committer also has vigilant mode on. The signature covers the committer's key, not the other author's consent.
  • Unverified: the signature cannot be verified, or the commit is unsigned and the committer or an author has vigilant mode on.

How to turn it on

In your account settings, open the SSH and GPG keys page. Under the vigilant mode heading, choose the option to flag unsigned commits as unverified.

GitHub advises enabling it only if you sign all your commits and tags and use a GitHub-verified email address as your committer email. After you switch it on, any unsigned commit or tag you create locally and push is marked Unverified.

Get signing working first

Set up signing before you flip the switch, or your own work will look suspicious. An SSH key is the lightest option for most developers; see how to sign Git commits with an SSH key. Test with a throwaway branch and confirm the badge reads Verified.

Remember the limits. A Verified badge says a key registered to an account signed the commit. It does not say the code is safe. The post what signed commits prove and do not prove covers that gap.

Pair it with a rule

Flags only help when someone looks at them. On shared branches, a ruleset or branch protection rule that requires signed commits turns the visual cue into a gate. Vigilant mode covers the account, the rule covers the branch.

Quick check

Does vigilant mode sign my commits for me?

No. It only changes how GitHub labels unsigned ones. You still need a signing key configured locally.

Why does a co-authored commit show Partially verified?

The signature proves the committer's key, but a co-author who also uses vigilant mode did not sign it, so GitHub cannot show full verification.

Safeguard policies and gates can check pull requests against rules your team defines, which is one place to enforce a signing expectation alongside platform settings.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.