Safeguard
Developer Tools•

What is gitsign and how does keyless Git commit signing work?

Gitsign signs Git commits with a short-lived Sigstore certificate tied to your identity. Setup, verification and the limits to know before you adopt it.

Safeguard Security Team
3 min read

Gitsign is a Sigstore tool that signs Git commits and tags with a short lived certificate tied to your OIDC identity, so you need no long lived signing key. Each signature is logged in Rekor so it stays verifiable after the certificate expires.

How it works

When you sign, gitsign opens your browser to the Sigstore OIDC login. It does not keep signing keys or refresh tokens on disk. The commit is signed with a certificate that, per the README, lasts about ten minutes on the public instance, and the signing event is recorded in the Rekor transparency log.

Compare that with key based signing, where a stolen laptop or leaked key can sign as you until someone notices.

Set it up

For one repository:

git config --local gpg.x509.program gitsign
git config --local gpg.format x509
git config --local commit.gpgsign true
git config --local tag.gpgsign true

The first two lines are required. The last two make signing automatic, and the README warns they make commits depend on internet access. Without them, sign per commit with the signing flag.

Verify

gitsign verify --certificate-identity=name@example.com --certificate-oidc-issuer=https://accounts.example.com HEAD

The README prefers this over git verify-commit, because the git commands do not pass identity information to the signing tool and print a warning that cert claims are not verified. That is the same lesson as with images: a valid signature without an identity check proves little.

Is it right for you?

FactorGitsignKey based signing
Keys to manageNoneYours to store and rotate
Needs a browser loginYesNo
Works offline when signingNoYes
Shows as verified on GitHubNo, per the READMEDepends on key type
Identity in the signatureOIDC identityKey owner

Limits to plan around

  • Signing needs a browser for login, with caching options to cut friction.
  • CI without a terminal needs logging set to a file.
  • By default data goes to the public Rekor instance, and certificates can contain emails or repository identifiers, which matters for private repositories.
  • The README marks offline verification as experimental.
  • GitHub does not show gitsign signatures as verified, because the Sigstore CA root is not in its trust root.

What a signed commit does and does not prove

It ties a commit to an identity at a time. It does not prove the change is correct or reviewed. For source assurance, pair signing with branch protection and review.

Where Safeguard fits

Safeguard's policy gates and dependency scanning check what a commit introduces, which signing alone cannot do.

Quick check

Does gitsign replace code review?

No. It proves who signed, not that the change is good.

Why not use git verify-commit?

Per the README, it does not verify the certificate claims, so you lose the identity check.

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.