Skip to main content

Signed Commits Policy

Policy​

All commits to this repository should be signed using GPG or SSH keys. Signed commits provide cryptographic proof of authorship and prevent commit spoofing.

Setup Guide​

SSH signing uses your existing SSH key and requires minimal setup.

Configure git to use SSH signing:

git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true

Add your SSH key to GitHub: Settings, SSH and GPG keys, New SSH key, select "Signing Key".

Option 2: GPG Signing​

Generate a GPG key if you do not have one:

gpg --full-generate-key

Configure git:

gpg --list-secret-keys --keyid-format=long
git config --global user.signingkey YOUR_KEY_ID
git config --global commit.gpgsign true

Add your GPG public key to GitHub: Settings, SSH and GPG keys, New GPG key.

Verification​

Signed commits show a "Verified" badge on GitHub. Verify locally:

git log --show-signature -1

Branch Protection​

Branch protection on main is configured to require signed commits when the repository ruleset supports it. The branch-protection-audit workflow (#360) monitors this setting.

Exceptions​

Automated commits from GitHub Actions (MegaLinter, Dependabot) use the github-actions[bot] identity and are signed by GitHub's internal key.