Skip to content

docs: add build provenance verification to the installation guide - #2473

Merged
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issue-2390-attestation-docs
Jul 29, 2026
Merged

docs: add build provenance verification to the installation guide#2473
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issue-2390-attestation-docs

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Background

Related issue: #2390

The issue was filed as "fix the filename in an existing example", but as the maintainer noted on it, that section never landed — #2352 was closed as superseded and only its CI half is on main. So this adds the section, with the mismatch already fixed.

Changes

Adds a Verify build provenance subsection to the manual-installation guide, after the checksum verification block.

The example verifies the path the preceding steps actually save the binary to — /usr/local/bin/rulesync on Linux/macOS, rulesync.exe on Windows — rather than the release asset name rulesync-darwin-arm64, which those steps rename away. It also states why the rename is harmless: gh attestation verify identifies the file by its contents, not its name.

gh attestation was introduced in GitHub CLI v2.49.0, so the minimum version is stated.

Verification

I confirmed the attestation actually resolves for a renamed binary rather than assuming it. Downloading rulesync-linux-x64 from v16.0.0 as ./rulesync and querying its digest:

gh api repos/dyoshikawa/rulesync/attestations/sha256:b0087123f722f8b571918860578d9e8dfa0ffc21b1f42755275a1d396f5bdb8d

returns a https://slsa.dev/provenance/v1 attestation whose subjects are rulesync-darwin-arm64, rulesync-darwin-x64, rulesync-linux-arm64, rulesync-linux-x64 and rulesync-windows-x64.exe, built by .github/workflows/publish-assets.yml in this repository. Lookup is by digest, so the local filename does not matter — which is what makes the corrected example valid.

(The gh in this environment is 2.46.0 and predates the attestation command, hence the API check rather than running gh attestation verify itself.)

Docs-only; skills/rulesync/installation.md is the scripts/sync-skill-docs.ts output. pnpm cicheck passes.

Closes #2390

The attestation section PR #2352 proposed never landed, only its CI half did. Adds it with the filename mismatch already fixed: the example verifies the path the preceding manual steps actually save the binary to, rather than the release asset name.
…ance example

Review follow-ups: the Windows steps move the binary into System32, so verify it there; note that gh attestation verify needs an authenticated CLI; add --signer-workflow, since --repo alone does not prove which workflow signed the attestation. The npm package does carry provenance after all, so it is pointed at npm audit signatures rather than described as unattested.
@dyoshikawa
dyoshikawa merged commit fdc8e05 into main Jul 29, 2026
5 checks passed
@dyoshikawa
dyoshikawa deleted the resolve-scrap-issue-2390-attestation-docs branch July 29, 2026 06:08
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.

docs: align attestation verification example with downloaded binary names

2 participants