Skip to content

security: make release attestation a publication prerequisite #487

Open

Description

@codeforester

Goal

Ensure publication cannot proceed until the exact reviewed artifacts have provenance and SBOM attestations.

Scope

  • Make the publish job depend on successful artifact attestation rather than running attestation and publication in parallel.
  • Verify the attestation in the publication path against the exact artifact digest, repository, workflow, source commit, and release tag.
  • Use the build job's source_commit and release_tag outputs for manual-dispatch verification instead of ambient GITHUB_SHA/GITHUB_REF.
  • Preserve least-privilege permissions: only the attestation job receives attestations: write, and only the publication job receives PyPI OIDC.
  • Add a failure-path test or workflow validation proving that missing/mismatched attestations block upload.

Acceptance criteria

  • A missing, stale, or mismatched attestation prevents PyPI upload.
  • Manual tagged publication verifies the same source identity as tag-triggered publication.
  • Successful TestPyPI and PyPI rehearsals retain the existing release metadata and SBOM evidence.

This is a v1.0 supply-chain security gate.

Activity

  1. added this to the v1.0.0 milestone on Oct 26, 2026
  2. self-assigned this
    on Oct 26, 2026
  3. moved this to Backlog in base-clion Oct 26, 2026
  4. moved this from Backlog to In Progress in base-clion Oct 26, 2026
  5. moved this from In Progress to Ready in base-clion Oct 26, 2026
  6. codeforester commented on Oct 27, 2026

    @codeforester
    ContributorAuthor

    Implementation PR #496 makes attestation verification an explicit prerequisite for publication and binds checks to build source outputs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

securitySecurity hardening or vulnerability work

Type

No type

Projects

  • Status
    Ready

Relationships

None yet

Development

No branches or pull requests

Issue actions