Context
--cli-install=binary (#653) verifies releases with keyless cosign, but only on linux: internal/generate/setup_cli_binary_preamble.sh pins a cosign checksum for linux/amd64 and linux/arm64 only, and install_cosign bails on any other OS, so macOS runners fall back to the mandatory sha256 gate with no provenance. This was validated and documented in #654.
Ask (demand-gated)
Extend keyless cosign verification to macOS runners using the same method. cosign publishes cosign-darwin-amd64 and cosign-darwin-arm64, so this is small:
- Add the two darwin cosign sha256 pins alongside the linux ones (verify against the sigstore/cosign release at implementation time; for v2.4.3 they are
cosign-darwin-amd64 98a3bfd691f42c6a5b721880116f89210d8fdff61cc0224cd3ef2f8e55a466fb, cosign-darwin-arm64 edfc761b27ced77f0f9ca288ff4fac7caa898e1e9db38f4dfdf72160cdf8e638).
- Allow
OS=darwin in install_cosign (drop the [ "$OS" != "linux" ] bail for pinned darwin arches) and select the cosign-darwin-${ARCH} asset.
- Flip the macOS legs of
.github/workflows/cli-install-selftest.yaml to expect_cosign: true so the parity is asserted live.
install.sh already handles macOS (shasum -a 256 fallback), and bash is the default shell on macOS runners, so no shell change is needed. Update the --cli-install docs to note macOS now gets cosign parity.
Priority
Narrow intersection: only matters to a consumer who needs allowlist-free install AND runs macOS runners AND wants provenance (not just the sha256 gate). action mode already covers macOS via cosign-installer. Pick up when a user actually needs binary-mode provenance on macOS.
Context
--cli-install=binary(#653) verifies releases with keyless cosign, but only on linux:internal/generate/setup_cli_binary_preamble.shpins a cosign checksum forlinux/amd64andlinux/arm64only, andinstall_cosignbails on any other OS, so macOS runners fall back to the mandatory sha256 gate with no provenance. This was validated and documented in #654.Ask (demand-gated)
Extend keyless cosign verification to macOS runners using the same method. cosign publishes
cosign-darwin-amd64andcosign-darwin-arm64, so this is small:cosign-darwin-amd64 98a3bfd691f42c6a5b721880116f89210d8fdff61cc0224cd3ef2f8e55a466fb,cosign-darwin-arm64 edfc761b27ced77f0f9ca288ff4fac7caa898e1e9db38f4dfdf72160cdf8e638).OS=darwinininstall_cosign(drop the[ "$OS" != "linux" ]bail for pinned darwin arches) and select thecosign-darwin-${ARCH}asset..github/workflows/cli-install-selftest.yamltoexpect_cosign: trueso the parity is asserted live.install.sh already handles macOS (
shasum -a 256fallback), and bash is the default shell on macOS runners, so no shell change is needed. Update the--cli-installdocs to note macOS now gets cosign parity.Priority
Narrow intersection: only matters to a consumer who needs allowlist-free install AND runs macOS runners AND wants provenance (not just the sha256 gate).
actionmode already covers macOS via cosign-installer. Pick up when a user actually needs binary-mode provenance on macOS.