Skip to content

ci: pin third-party release actions to commit SHAs - #87

Merged
perezmlal merged 1 commit into
mainfrom
ci/pin-release-actions
Oct 13, 2026
Merged

perezmlal merged 1 commit into
mainfrom
ci/pin-release-actions

Conversation

@perezmlal

@perezmlal perezmlal commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Description

Pins the two third-party actions in .github/workflows/release.yml to full commit SHAs. This resolves CodeQL code-scanning alerts actions/unpinned-tag for softprops/action-gh-release@v3 (line 41) and sigstore/cosign-installer@v3 (line 23).

The release job runs with contents: write and id-token: write. With a mutable tag, a compromised upstream could change the code that runs while those permissions are active.

Action Before After
sigstore/cosign-installer @v3 @398d4b0eeef1380460a10c8013a76f728fb906ac # v3.9.1
softprops/action-gh-release @v3 @efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3

Each SHA is the commit that the upstream v3 tag points to today, read from the upstream repository's tags (not from a fork). The workflow runs exactly the same code as before.

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Refactor / chore

Checklist

  • I have read the Contributing guidelines.
  • Tests added or updated for the change (see the Testing Policy), or I have explained below why tests are not applicable.
  • poetry run pytest passes locally.
  • ruff check and bandit report no new issues (see the Development guide).
  • Documentation updated where relevant (README, docs/, CHANGELOG.md).
  • I am not including secrets, credentials, or sensitive data.
  • Security-impacting changes have been considered; vulnerabilities are reported privately via SECURITY.md, not in this PR.

Notes for reviewers

  • Tests / pytest / ruff / bandit: not applicable. The PR only changes two uses: references in a workflow and touches no Python code.
  • CHANGELOG: not updated, because this is a CI-only change with no user-facing effect.
  • cosign-installer version: the upstream floating v3 tag points to v3.9.1, not the newest v3 release (v3.10.1). I pinned v3.9.1 to keep behavior unchanged. Moving to v3.10.x or v4.x changes how signing works and belongs in a separate PR.
  • Future updates: the github-actions ecosystem in .github/dependabot.yml will keep the SHAs and their # vX.Y.Z comments updated.
  • Verification: the workflow only runs when a v* tag is pushed, so this PR's CI does not run it. The SHAs will first be used on the next release tag.

Mutable tags let an upstream compromise run untrusted code in a job that holds
contents:write and id-token:write. Pin to the commits the v3 tags resolve to
today so behavior is unchanged; Dependabot keeps the SHAs and version comments
up to date. Resolves CodeQL actions/unpinned-tag alerts.

Co-Authored-By: Claude Code - Claude Opus 5.5 (medium) <noreply@anthropic.com>
@perezmlal
perezmlal merged commit 962b629 into main Oct 13, 2026
10 of 12 checks passed
@perezmlal
perezmlal deleted the ci/pin-release-actions branch October 13, 2026 22:44
@perezmlal perezmlal mentioned this pull request Oct 13, 2026
1 of 4 tasks
perezmlal added a commit that referenced this pull request Oct 13, 2026
Convert the [Unreleased] CHANGELOG block to [2.3.0] and fill the gaps:
the project website, Event Publisher runtime dependency bumps, the
nifi-scripts Poetry resolution fix (#65), release-action SHA pinning
(#87) and Werkzeug 3.1.9. Mirror the summary in RELEASE.md with the
upgrade note for the MQTT Sink connector setting.

Move the website entry out of [2.1.0]: it was merged after v2.2.0 and
is in neither the v2.1.0 nor the v2.2.0 tree.

Restore the code fences in docs/Event-Publisher.md, which #83 indented
far enough to render as literal text.

Signed-off-by: Luis Alfredo Perez Medina <perezmlal@outlook.com>
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