Skip to content

Conversation

@maxisbey
Copy link
Contributor

Summary

Pin all third-party GitHub Actions to their full commit SHAs instead of mutable tags.

Motivation and Context

GitHub Action tags are mutable - a malicious actor with write access to an action's repository could update a tag (like v4) to point to compromised code. By pinning to immutable commit SHAs, we prevent this class of supply chain attack.

This follows the approach described in the uvicorn discussion #2687.

Changes

All third-party actions are now pinned with format:

uses: owner/repo@<full-sha> # <version-tag>

Actions pinned:

  • actions/checkout
  • actions/cache
  • actions/upload-artifact
  • actions/download-artifact
  • actions/github-script
  • astral-sh/setup-uv
  • pre-commit/action
  • pypa/gh-action-pypi-publish

Generated using pinact.

Breaking Changes

None.

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines

Pin all third-party GitHub Actions to their full commit SHAs instead of
mutable tags. This prevents supply chain attacks where a malicious actor
could update a tag to point to compromised code.

Generated using pinact (https://github.com/suzuki-shunsuke/pinact).

Claude-Generated-By: Claude Code (cli/claude-opus-4-5=1%)
Claude-Steers: 5
Claude-Permission-Prompts: 8
Claude-Escapes: 2
@maxisbey maxisbey enabled auto-merge (squash) January 16, 2026 08:48
@maxisbey maxisbey merged commit c9e98e5 into main Jan 16, 2026
24 of 25 checks passed
@maxisbey maxisbey deleted the ci-pin-actions-to-sha branch January 16, 2026 08:52
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.

3 participants