You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reviewer 67e3c224: `first-time-setup.md` still described
`scripts/setup-git-signed.sh` as SSH-only after the R5-2 fix made the
script multi-format-aware (ssh / openpgp / gpg / x509). Onboarding
doc misled the exact contributors R5-2 was meant to unblock.
Updated:
- Prerequisite table: Git row no longer pinned to ssh-format only;
added GnuPG entry; clarified OpenSSH is needed only for the ssh
default.
- "Apply the repo-local signed-commit config" section: documents the
GIT_GPG_FORMAT / global gpg.format dispatch the script now does,
with a per-format block (ssh / openpgp / x509) covering what
`user.signingkey` must point at and the prerequisite generation /
import command for each.
- Sanity-check snippet: now also prints `gpg.format` and notes that
signingkey shape varies by format (ssh: .pub path; openpgp/x509:
key id / fingerprint).
No code change. Doc-only fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Paperclip <noreply@paperclip.ing>
| OpenSSH | 8.0+ | Bundles `ssh-keygen -Y verify` used by `commit.gpgsign=true`. |
25
+
| Git | 2.34+ | Required for commit signing in any of the supported formats (`gpg.format` = `ssh`, `openpgp` / `gpg`, or `x509`). |
26
+
| OpenSSH | 8.0+ | Required only for `gpg.format=ssh` (the default; bundles `ssh-keygen -Y verify`). Skip if you sign with OpenPGP or x509. |
27
+
| GnuPG | 2.2+ | Required only for `gpg.format=openpgp` / `gpg`. Skip if you sign with SSH or x509. |
27
28
| Node.js | 20.x LTS | Only needed for the bundled React UI — `mvn package` shells out to it via the frontend Maven plugin. |
28
29
|`gh` CLI | 2.40+ | For PR/release plumbing. |
29
30
@@ -53,12 +54,19 @@ Apply the repo-local signed-commit config (this is what RAN-46 AC #2 codifies):
53
54
./scripts/setup-git-signed.sh
54
55
```
55
56
56
-
That script is idempotent and is the single SSoT for the per-repo `git config --local` block. It writes `user.name`, `user.email`, `user.signingkey`, `gpg.format=ssh`, `commit.gpgsign=true`, `tag.gpgsign=true` and verifies your public key resolves on disk. If you do not have an `id_ed25519` keypair, generate one (`ssh-keygen -t ed25519 -C "you@example.com"`) and upload the **public** key to your GitHub account under `Settings → SSH and GPG keys → New SSH key → Key type: Signing Key` before re-running.
57
+
That script is idempotent and is the single SSoT for the per-repo `git config --local` block. It writes `user.name`, `user.email`, `user.signingkey`, `gpg.format`, `commit.gpgsign=true`, `tag.gpgsign=true`, then verifies the configured key resolves in your keychain.
58
+
59
+
The script picks up your preferred signing format from (in order) the `GIT_GPG_FORMAT` env var, your global `git config gpg.format`, or the `ssh` default. Per-format expectations:
60
+
61
+
-**`ssh` (default)** — `user.signingkey` must be a path on disk to your **public** key (typically `~/.ssh/id_ed25519.pub`). If you do not have an ed25519 keypair, generate one (`ssh-keygen -t ed25519 -C "you@example.com"`) and upload the public key to your GitHub account under `Settings → SSH and GPG keys → New SSH key → Key type: Signing Key` before re-running.
62
+
-**`openpgp` / `gpg`** — `user.signingkey` must be a key id or fingerprint that `gpg --list-secret-keys` knows about. Generate / import the key first (`gpg --full-generate-key`), then `git config --global user.signingkey <KEY_ID>` and `git config --global gpg.format openpgp` before running this script.
63
+
-**`x509`** — `user.signingkey` must be a key id or fingerprint that `gpgsm --list-secret-keys` knows about. Configure x509 signing keys in `gpgsm` first.
57
64
58
65
Sanity-check the config:
59
66
60
67
```bash
61
-
git config --local --get user.signingkey # should print a path ending in .pub
68
+
git config --local --get user.signingkey # ssh: a .pub path; openpgp/x509: a key id or fingerprint
0 commit comments