Skip to content

Bump Node-20 action pins to Node-24-compatible majors#101

Open
joshkautz wants to merge 1 commit intoanthropics:mainfrom
joshkautz:bump-node20-deprecated-action-pins
Open

Bump Node-20 action pins to Node-24-compatible majors#101
joshkautz wants to merge 1 commit intoanthropics:mainfrom
joshkautz:bump-node20-deprecated-action-pins

Conversation

@joshkautz
Copy link
Copy Markdown

Summary

Bumps every actions/* reference pinned by SHA in action.yml and the repo's CI workflows from its Node-20-based major release to the corresponding Node-24-compatible major release. Consumers of this action currently see GitHub's deprecation warning on every run:

Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@0057852…, actions/setup-python@a26af69…, actions/upload-artifact@ea165f8…

GitHub's timeline:

  • June 2nd 2026: Node 24 becomes the default; legacy actions can opt out with ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true
  • September 16th 2026: Node 20 removed entirely from runners

Pinning by SHA is correct hygiene (it blocks tag-rewrite supply-chain attacks), but it means every new major release of a transitive dependency needs a manual bump here. This PR catches up.

Pin updates

File Action From To
action.yml actions/setup-python a26af69… (v5.6.0) a309ff8… (v6.2.0)
action.yml actions/cache 0057852… (v4.3.0) 27d5ce7… (v5.0.5)
action.yml actions/cache/save 0057852… (v4.3.0) 27d5ce7… (v5.0.5)
action.yml actions/setup-node 49933ea… (v4.4.0) 48b55a0… (v6.4.0)
action.yml actions/upload-artifact ea165f8… (v4.6.2) 330a01c… (v5.0.0)
.github/workflows/test-claudecode.yml actions/checkout 34e1148… (v4.3.1) de0fac2… (v6.0.2)
.github/workflows/test-claudecode.yml actions/setup-python 7f4fc3e… (v4.9.1) a309ff8… (v6.2.0)
.github/workflows/test-claudecode.yml actions/setup-node 49933ea… (v4.4.0) 48b55a0… (v6.4.0)
.github/workflows/sast.yml actions/checkout 34e1148… (v4.3.1) de0fac2… (v6.0.2)

Each replacement SHA was resolved from the current major-version tag of the upstream repo:

Out of scope (intentionally not changed)

  • The node-version: '18' runtime in action.yml and node-version: '20' in test-claudecode.yml. Those install a specific Node for ClaudeCode to run against; they're orthogonal to the runner's Node version. Bump separately when/if the bundled CLI's supported runtime changes.
  • Behavioral changes from the action major bumps: I read the release notes for each and didn't find anything that affects how claude-code-security-review uses these actions (the inputs / outputs we use here haven't changed). Worth confirming in CI.

Test plan

  • CI on this PR (the repo's own test-claudecode.yml and sast.yml workflows) passes — that exercises the bumped checkout / setup-python / setup-node pins directly.
  • Once merged, the next consumer's run of anthropics/claude-code-security-review@main should see the deprecation warning disappear.

Filed because we're a downstream consumer (we use this action in our PR pipeline) and noticed the warning. Happy to iterate if you'd prefer different versions or want to split the PR.

GitHub is deprecating Node 20 on Actions runners: forced to Node 24 by
default starting June 2nd 2026 and Node 20 removed entirely on
September 16th 2026. Workflows that consume this action currently see
warnings like:

> Node.js 20 actions are deprecated. The following actions are running
> on Node.js 20 and may not work as expected:
> actions/cache@0057852,
> actions/setup-python@a26af69,
> actions/upload-artifact@ea165f8

The pinned-by-SHA approach is correct hygiene (prevents tag-rewrite
supply-chain attacks), but it means each new major release of an
upstream action needs a manual SHA bump here.

Updated pins (action.yml):
- actions/setup-python:    v5.6.0 -> v6.2.0
- actions/cache:           v4.3.0 -> v5.0.5
- actions/cache/save:      v4.3.0 -> v5.0.5
- actions/setup-node:      v4.4.0 -> v6.4.0
- actions/upload-artifact: v4.6.2 -> v5.0.0

Updated pins (.github/workflows/test-claudecode.yml):
- actions/checkout:        v4.3.1 -> v6.0.2
- actions/setup-python:    v4.9.1 -> v6.2.0
- actions/setup-node:      v4.4.0 -> v6.4.0

Updated pins (.github/workflows/sast.yml):
- actions/checkout:        v4.3.1 -> v6.0.2

All replacement SHAs were resolved from the current major-version tag
of each upstream repo. Per-action verification:

- actions/setup-python@v6 (v6.2.0): https://github.com/actions/setup-python/releases/tag/v6.2.0
- actions/cache@v5 (v5.0.5):        https://github.com/actions/cache/releases/tag/v5.0.5
- actions/setup-node@v6 (v6.4.0):   https://github.com/actions/setup-node/releases/tag/v6.4.0
- actions/upload-artifact@v5 (v5.0.0): https://github.com/actions/upload-artifact/releases/tag/v5.0.0
- actions/checkout@v6 (v6.0.2):     https://github.com/actions/checkout/releases/tag/v6.0.2

Out of scope:
- The `node-version: '18'` runtime in action.yml and `node-version: '20'`
  in test-claudecode.yml were left as-is. Those install a specific Node
  for ClaudeCode to run against; they're independent of the action
  runner's Node version. Bump separately if/when the bundled CLI's
  supported runtime changes.
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