Node 20 lane ends. Find every GitHub Actions step still on a Node 20 (or older) action, get the release that runs on Node 24, and rewrite it.
Since 2026-06-02 GitHub runners run JavaScript actions on Node 24, and jobs that use node20 actions end with "Node.js 20 actions are deprecated. The following actions are running on Node.js 20…". The warning doesn't say which file and line, misses actions hidden inside composite actions, and doesn't say which version fixes it. FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 only hides it (actions/runner#4295) until Node 20 is removed from runners.
pipx install git+https://github.com/Blackman99/actnodePython 3.9+, zero dependencies. Set GITHUB_TOKEN (e.g. export GITHUB_TOKEN=$(gh auth token)) for repos with many actions.
$ actnode
[OLD] .github/workflows/ci.yml:7 node20 actions/checkout@v4 -> actions/checkout@v5
[OLD] .github/workflows/ci.yml:10 node20 actions/upload-artifact@v4 -> actions/upload-artifact@v6
$ actnode --fix # rewrite those uses: lines (SHA pins get a SHA + version comment)
$ actnode --fail # exit 1 if anything is still old
$ actnode --repo owner/name # API scan, no cloneIt reads each action's real action.yml at the exact ref you pin, follows composite actions and reusable workflows, and suggests the smallest major bump that runs on Node 24. Scan a remote repo without cloning: actnode --repo owner/name (or --org owner).
- uses: actions/checkout@v7
- uses: Blackman99/actnode@v0.2.0 # job summary table; fails if an old-runtime action sneaks backFull docs: install · usage · Action · reference · FAQ
Goal · Roadmap · Contributing · MIT

