Skip to content

feat(ci): package-registry provenance - #78

Merged
hyperpolymath merged 1 commit into
mainfrom
feat/package-provenance
Jun 25, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
feat/package-provenance

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Adds native package-registry provenance to the in-scope publish flows in .github/workflows/release.yml.

Cargo (crates.io) — DONE

crates.io has no native OIDC provenance, so we attest the built .crate artifact via GitHub build-provenance:

  • publish-crates job permissions: now includes id-token: write and attestations: write (kept contents: read).
  • Added a cargo package step (single root crate, default working-dir → target/package/bunsenite-<ver>.crate).
  • Added actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2 with subject-path: 'target/package/*.crate', run before cargo publish.
  • cargo publish --no-verify unchanged — publishing not altered.

npm (npmjs) — SKIPPED, needs-bespoke

The publish-npm job does a genuine public publish (npm publish --access public in bindings/rescript, registry registry.npmjs.org). Provenance was not added because bindings/rescript/package.json has repository.url pointing to GitLab (gitlab.com/.../bunsenite.git), not this GitHub repo. npm publish --provenance requires the manifest repository.url to match the GitHub build repository, so enabling it would fail the publish. Per the "never break publishing" constraint this is left as needs-bespoke: fix repository.url to the GitHub repo (and bump the stale version: 1.0.0) first, then add id-token: write + --provenance.

Out of scope (untouched)

Distro / OS packagers were explicitly out of scope and not modified:
publish-aur.yml, publish-chocolatey.yml, publish-container.yml, publish-copr.yml, publish-debian-ppa.yml, publish-flatpak.yml, publish-homebrew.yml, publish-macports.yml, publish-nixpkgs.yml, publish-obs.yml, publish-packages.yml, publish-scoop.yml, publish-winget.yml, plus ghcr-publish.yml.

@hyperpolymath
hyperpolymath merged commit 84e3efd into main Jun 25, 2026
6 of 16 checks passed
@hyperpolymath
hyperpolymath deleted the feat/package-provenance branch June 25, 2026 09:15
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.

1 participant