Skip to content

release: attest the sdist provenance, attach the bundle to the release - #216

Merged
ThomasWaldmann merged 1 commit into
borgbackup:mainfrom
ThomasWaldmann:release-attestation
Aug 31, 2026
Merged

ThomasWaldmann merged 1 commit into
borgbackup:mainfrom
ThomasWaldmann:release-attestation

Conversation

@ThomasWaldmann

Copy link
Copy Markdown
Member

Adds a build provenance attestation to the release workflow, like borg
already does for its sdist and binaries (actions/attest-build-provenance
in .github/workflows/release.yml / ci.yml there).

  • the release job gets id-token: write and attestations: write

  • the sdist is attested after it was built and checked

  • the sigstore bundle the action writes (.sigstore.jsonl) is uploaded as
    a release asset next to the sdist, so the attestation can be verified
    offline / without the GitHub attestations API:

    gh attestation verify --owner borgbackup borgstore-<tag>.tar.gz
    gh attestation verify --owner borgbackup --bundle borgstore-<tag>.tar.gz.sigstore.jsonl borgstore-<tag>.tar.gz
    
  • the draft release notes tell users about both

Only the sdist goes to PyPI, the .jsonl is a GitHub release asset only.

zizmor . is clean.

🤖 Generated with Claude Code

Give the sdist a build provenance attestation via
actions/attest-build-provenance, like borg does for its sdist and
binaries, so that anybody can check that the file on PyPI/GitHub was
built by this workflow, from this repository, at this tag.

Additionally upload the sigstore bundle the action produces as a release
asset next to the sdist, so the attestation can also be verified offline
and does not depend on the GitHub attestations API being reachable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ThomasWaldmann
ThomasWaldmann merged commit 924d4d2 into borgbackup:main Aug 31, 2026
9 checks passed
@ThomasWaldmann
ThomasWaldmann deleted the release-attestation branch August 31, 2026 21:27
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