Skip to content

ci: pin third-party GitHub Actions to commit SHAs - #265

Merged
louib merged 1 commit into
masterfrom
louis/inf-2714-pin-third-party-actions
Aug 14, 2026
Merged

ci: pin third-party GitHub Actions to commit SHAs#265
louib merged 1 commit into
masterfrom
louis/inf-2714-pin-third-party-actions

Conversation

@ralph-bitgo

@ralph-bitgo ralph-bitgo Bot commented Aug 14, 2026

Copy link
Copy Markdown

What

Pins the 7 third-party GitHub Action usages in this repo from floating
version tags to full 40-character commit SHAs (with a trailing # vX.Y.Z
comment for readability):

File Action Old ref New pin
.github/workflows/claude-code.yaml aws-actions/configure-aws-credentials v6 e6de054... (v6.2.3)
.github/workflows/pull_request.yaml docker/build-push-action v6 10e90e3... (v6.19.2)
.github/workflows/release-to-ghcr.yaml docker/build-push-action v6 10e90e3... (v6.19.2)
.github/workflows/release-to-ghcr.yaml docker/login-action v3 c94ce9f... (v3.7.0)
.github/workflows/pull_request.yaml docker/setup-buildx-action v3 8d2750c... (v3.12.0)
.github/workflows/release-to-ghcr.yaml docker/setup-buildx-action v3 8d2750c... (v3.12.0)
.github/workflows/pull_request.yaml dorny/paths-filter v3 0e4a8c6... (v3.0.4)

Why

Floating tags (v3, v6) are mutable refs — the upstream maintainer (or an
attacker who compromises their account) can repoint a tag to different code
at any time, giving that code access to this repo's CI secrets and OIDC role.
Pinning to an immutable commit SHA closes that supply-chain attack surface.

This is part of the org-wide third-party GitHub Action pinning effort
tracked in INF-2571/INF-2710. These 7 actions were grandfathered with an
exception in BitGo/build-system's zizmor CI policy; this PR is the
per-repo migration for BitGo/advanced-wallets so that exception can
eventually be removed once every usage org-wide is pinned.

BitGo-owned/first-party actions (actions/checkout, actions/setup-node,
etc.) are explicitly out of scope here — tracked separately in INF-2572.

Test plan

  • Verified each SHA resolves to the exact tag named in its trailing
    comment via the GitHub API (peeling annotated tags where needed)
  • Confirmed with: inputs used by each step remain valid at the pinned
    patch version (no interface drift within the same major version)
  • CI passes on this PR (exercises pull_request.yaml's pinned actions
    directly)

Ticket: INF-2714

Replace floating version tags (v3, v6) with full 40-character commit
SHAs for aws-actions/configure-aws-credentials, docker/build-push-action,
docker/login-action, docker/setup-buildx-action, and dorny/paths-filter
across claude-code.yaml, pull_request.yaml, and release-to-ghcr.yaml.
Each pin retains a trailing version comment for readability.

Floating tags can be repointed by the upstream maintainer (or an
attacker who compromises their account) to inject malicious code into
CI, since tags are mutable refs. Pinning to immutable commit SHAs
closes that supply-chain attack surface, per the org-wide third-party
action pinning policy (INF-2571).

Ticket: INF-2714
Session-Id: 82bb60fb-74af-4eb0-980d-e679d6c0dedf
Task-Id: 0b7e8841-a9ac-4e3e-af8c-61b160a2d06c
@linear-code

linear-code Bot commented Aug 14, 2026

Copy link
Copy Markdown

INF-2714

@bitgo-ai-agent-dev
bitgo-ai-agent-dev Bot force-pushed the louis/inf-2714-pin-third-party-actions branch from a3e216f to 6ed7b1b Compare August 14, 2026 20:15
@ralph-bitgo
ralph-bitgo Bot force-pushed the louis/inf-2714-pin-third-party-actions branch from 6ed7b1b to d3adafd Compare August 14, 2026 20:15
@louib
louib marked this pull request as ready for review August 14, 2026 20:35
@louib
louib requested review from a team as code owners August 14, 2026 20:35
@louib
louib merged commit 5057004 into master Aug 14, 2026
22 checks passed
@louib
louib deleted the louis/inf-2714-pin-third-party-actions branch August 14, 2026 21:45
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.

2 participants