Repository navigation
feat: sign GitHub Release files with Sigstore - #478
Merged
Merged
Conversation
PyPI attestations cover the PyPI copy only, so files downloaded from a GitHub Release had nothing to verify against and Scorecard's Signed-Releases check scored 0 on every generated repo. create-release now signs each distribution and the SBOM keylessly and uploads the .sigstore.json bundles next to them.
This was referenced Oct 19, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced Oct 19, 2026
gtauzin
added a commit
to stateful-y/kedro-azureml-pipeline
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/yohou
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/yohou-nixtla
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/yohou-mlflow
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/sklearn-optuna
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/yohou-optuna
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/sklearn-wrap
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
gtauzin
added a commit
to stateful-y/kedro-dagster
that referenced
this pull request
Oct 19, 2026
Signs GitHub Release files with Sigstore (stateful-y/python-package-copier#478). Action pins stay at the digests Renovate maintains here; the template's tag seeds are not taken.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
create-releasein the generatedpublish-release.ymlnow signs each distribution and the SBOM with Sigstore (keyless,uvx sigstore==4.5.0 sign) and uploads the<file>.sigstore.jsonbundles to the GitHub Release next to the files they sign.id-token: writeis granted tocreate-releaseonly, not tobuild, which runs the project's own build hooks.dist/* sbom/*, so the bundles go up with the files.# renovate:annotation, so Renovate keeps it current.Type of Change
Motivation and Context
PyPI attestations cover the PyPI copy only. Files downloaded from a GitHub Release had nothing to verify against, so Scorecard's Signed-Releases check scores 0 on every generated repo and shows up as a code-scanning alert. Scorecard v5.6.0 counts
.sigstore.jsonassets as signatures. The score rises as new releases are published, because Scorecard looks at the last five.How Has This Been Tested?
uv run pytestcopier copy . /tmp/test-projectThe new test
test_release_files_are_signed_with_sigstorechecks the job permissions, the sign step and both upload paths. 482 fast tests pass. I checked thesigstore sign/verify githubCLI flags against 4.5.0. The real signing can only run in Actions, so the next release of any generated repo is the end-to-end check.Checklist
Additional Notes
The seven generated repos get the same change through their own PRs, applied as the rendered diff so that the next
copier updatehas nothing left to change.