Skip to content

ci: pin every release action to an immutable commit #485

Open

Description

@codeforester

Goal

Prevent a mutable GitHub Action tag from changing the code executed by the release workflow.

Current evidence

.github/workflows/package.yml pins the checkout, setup, artifact, and attestation actions to full commit SHAs, but the PyPI publisher is still referenced as pypa/[email protected].

Scope

  • Resolve the intended PyPI publisher release to a verified full commit SHA and pin both publication steps to it.
  • Add an automated check that rejects unpinned or non-SHA third-party actions in privileged workflows.
  • Document the update procedure: review upstream release changes, resolve the tag, update the SHA and version comment, and run the release rehearsal.
  • Ensure Dependabot or an equivalent maintenance path can propose SHA updates without silently reintroducing tags.

Acceptance criteria

  • No privileged release workflow uses a mutable action tag, branch, or moving ref.
  • CI fails when a new unpinned action reference is introduced.
  • TestPyPI rehearsal and the package workflow pass with the pinned publisher.

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

Activity

  1. added this to the v1.0.0 milestone on Oct 26, 2026
  2. added
    ciContinuous integration, tests, automation, or release workflows
    on Oct 26, 2026
  3. self-assigned this
    on Oct 26, 2026
  4. moved this to Backlog in base-clion Oct 26, 2026
  5. moved this from Backlog to In Progress in base-clion Oct 26, 2026
  6. moved this from In Progress to Ready in base-clion Oct 26, 2026
  7. codeforester commented on Oct 26, 2026

    @codeforester
    ContributorAuthor

    @/private/tmp/claude-503/-Users-rameshhp-work/cdcf6b68-a475-40d7-9b9b-1aebfd647c7a/scratchpad/issue485_comment.md

  8. codeforester commented on Oct 26, 2026

    @codeforester
    ContributorAuthor

    Validated against the current workflow and upstream history: the prior pypa/gh-action-pypi-publish SHA-pinning blocker was fixed upstream in pypa/gh-action-pypi-publish#301 (closing #290). The issue remains valid because this repository still uses a mutable action ref; the next implementation should pin the full 40-character commit SHA and rehearse the change through TestPyPI before production use. No release workflow change was made in this PR review pass.

  9. codeforester commented on Oct 27, 2026

    @codeforester
    ContributorAuthor

    Implementation PR #494 pins the PyPI publisher to the verified v1.14.3 commit and adds a regression check for full-SHA action refs.

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

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflows

Type

No type

Projects

  • Status
    Ready

Relationships

None yet

Development

No branches or pull requests

Issue actions