Skip to content

Extend binary-mode cosign verification to macOS runners #656

Description

@joshua-temple

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:

  1. 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).
  2. Allow OS=darwin in install_cosign (drop the [ "$OS" != "linux" ] bail for pinned darwin arches) and select the cosign-darwin-${ARCH} asset.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions