build(deps): bump actions/setup-node from 6 to 7#2867
Conversation
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/dependabot/github_actions/main/actions/setup-node-7")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/github_actions/main/actions/setup-node-7
git -C submodules/content-scope-scripts checkout origin/pr-releases/dependabot/github_actions/main/actions/setup-node-7Pin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "3773b2550a68268ba6e78872c545bf49398ee062")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/github_actions/main/actions/setup-node-7
git -C submodules/content-scope-scripts checkout 3773b2550a68268ba6e78872c545bf49398ee062 |
There was a problem hiding this comment.
Injected PR Evaluation: Web Compatibility & Security
PR: build(deps): bump actions/setup-node from 6 to 7 (#2867)
Scope: 8 GitHub workflow files — version pin only (actions/setup-node@v6 → @v7)
Web Compatibility Assessment
No findings. This PR does not modify any Content Scope Scripts runtime code.
- No changes under
injected/,messaging/,special-pages/, or platform entry points. - No browser API overrides, wrapper utilities, DOM manipulation, or feature initialization changes.
actions/setup-noderuns exclusively in GitHub Actions CI runners and is outside the C-S-S browser injection trust boundary.
Security Assessment
No findings. No C-S-S security-sensitive paths are touched.
- No changes to
captured-globals.js, message bridge, messaging transports, or origin validation. - No new
postMessage, dynamic code execution, or config/feature logic. - CI-only dependency bump; does not ship to end-user browsers.
Info (CI context, not C-S-S runtime): setup-node v7 migrates to ESM and upgrades @actions/cache to 5.1.0. Workflows here retain the same inputs (node-version-file, cache: 'npm'), so no workflow configuration changes are required. The v7 release also documents cache-poisoning mitigation guidance — a CI hygiene improvement, not a C-S-S concern.
Risk Level
Low Risk — Dependabot version-pin bump across GitHub Actions workflow YAML only; zero changes to injected JavaScript, messaging, or browser-facing bundles.
Recommendations
- Merge after CI passes — Standard Dependabot workflow bump; no additional C-S-S-specific testing required.
- No action items for web compatibility or runtime security review.
- Optional CI note: If any workflow fails post-merge, check runner version compatibility (v7 inherits v6's Node 24 runtime requirement; GitHub-hosted runners satisfy this).
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency update review:
actions/setup-nodev6 → v7Verdict: Low risk — safe to merge after CI completes.
This is a mechanical major-version bump across 8 workflow files (20 call sites). No workflow inputs change; only the action ref moves from
@v6to@v7.
Changelog impact (confirmed)
Per the v7.0.0 release notes, the only breaking change is an internal ESM migration. Inputs and YAML configuration are unchanged.
Relevant v7 changes for this repo:
Change Impact here ESM migration None for consumers — no workflow edits required Remove dummy NODE_AUTH_TOKENexportNo impact — no workflows use registry-url/ npm auth@actions/cache5.1.0 upgrade + cache write loggingLow — workflows already use explicit cache: 'npm'where neededNew cache-primary-key/cache-matched-keyoutputsOptional — not used today Cache-poisoning hardening docs No impact — no npm publish workflows Current usage patterns are compatible:
node-version-file: '.nvmrc'(Node 22) everywhere Node is installed- Explicit
cache: 'npm'on install-heavy jobs- No
always-auth(removed in v6)- No
packageManagerfield inpackage.json, so v6/v7 automatic npm caching does not activate implicitly — behavior stays driven by the explicitcacheinput
Test coverage (confirmed)
There is no unit test for the action itself (expected). Coverage comes from CI exercising
setup-nodeon this PR branch:
- Passing at review time:
unit,unit-tests(ubuntu + windows),github-scripts-unit,production-deps,build, and most Playwright integration jobs- Still pending: a few integration/snapshot jobs and branch-protection approval gates
Jobs without
cache: 'npm'(github-scripts-unit,deploy-docs,semver-label) also pass — confirms the bump does not break minimal Node-only steps.
Is this dependency still needed?
Yes.
actions/setup-nodeis the standard way to pin Node to.nvmrcon GitHub-hosted runners. No better alternative is used elsewhere in this repo.Note: workflows layer two caches —
setup-nodenpm download cache (cache: 'npm') plusactions/cachefornode_modules. That predates this PR and is intentional (npm tarball cache vs. installed modules). Not a regression from v7.
Supply chain (advisory)
- Fresh release:
v7.0.0was published 2026-07-14 (day before this PR). Early adopters may surface edge cases not seen on v6.- Floating tag:
@v7will pick up futurev7.xpatches automatically. This matches the repo’s existing pattern (@v6,@v7for checkout/cache/etc.), but it is slightly higher supply-chain exposure than pinning to a commit SHA.- Publisher trust:
actions/setup-nodeis an official GitHub-maintained action — baseline supply-chain risk is low.
Separate fix PR
None opened. I checked for an existing follow-up PR and found only this Dependabot PR (#2867). No code changes are required for compatibility.
Optional hardening (non-blocking, could be a future PR):
- Add a root
packageManagerfield (e.g.[email protected]) for reproducibility / Corepack alignment with setup-node docs- Consider
package-manager-cache: falseon jobs that never runnpm ciand only invokenode(already mostly the case)
Summary
Category Result Breaking workflow changes None expected Repo-specific regressions None observed in CI so far Required follow-up PR No Advisory concerns Fresh major release; floating @v7tagSent by Cursor Automation: Review dependabot
| - uses: actions/checkout@v7 | ||
| - name: Use Node.js | ||
| uses: actions/setup-node@v6 | ||
| uses: actions/setup-node@v7 |
There was a problem hiding this comment.
Advisory (non-blocking): This job uses both setup-node’s cache: 'npm' and a separate actions/cache for node_modules. That’s a pre-existing layered caching pattern (npm download cache vs. installed modules) and is unaffected by the v7 bump. v7 only adds optional cache key outputs — no action needed unless you want observability later.
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v6...v7) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
70e98b1 to
eb266be
Compare
There was a problem hiding this comment.
Dependency update review: actions/setup-node v6 → v7
Verdict: Low risk — safe to merge. No follow-up PR required.
Change summary
Mechanical version bump only: 19 references across 8 workflow files (bot-format, build-branch, build, coverage, semver-label, snapshots-update, snapshots, tests). No input or configuration changes.
Changelog impact (v7.0.0)
| Area | Change | Impact on this repo |
|---|---|---|
| Breaking | Internal migration to ESM | None for consumers. Workflow inputs/outputs unchanged. |
| Enhancement | New outputs cache-primary-key, cache-matched-key |
Not used today; optional future observability. |
| Bug fix | Removed dummy NODE_AUTH_TOKEN export |
No impact. Workflows do not use registry-url / npm auth inputs. |
| Bug fix | mirrorToken only used when provided |
No impact. No mirror / mirror-token inputs in workflows. |
| Dependency | Upgraded internal @actions/cache to 5.1.0 |
Transparent to callers; repo separately pins actions/cache@v5. |
| Docs | Cache-poisoning mitigation guidance | Awareness only; no workflow change required. |
Reference: v7.0.0 release notes
Workflow compatibility check
Confirmed compatible with current usage:
- Node version: All jobs use
node-version-file: '.nvmrc'(Node 22). Unchanged behavior. - Caching: Most jobs explicitly set
cache: 'npm'. This is intentional layered caching alongside separateactions/cache@v5fornode_modules— setup-node caches npm download artifacts, notnode_modulesitself. - No v6-only inputs: Workflows do not use removed
always-auth,registry-url,token, ormirrorinputs. - No auto-cache surprise: Root
package.jsonhas nopackageManager/devEngines.packageManagerfield, so v6's automatic npm caching would not activate without explicitcache: 'npm'anyway. - Runners: All jobs use GitHub-hosted runners (
ubuntu-latest,windows-latest). No self-hosted / GHES offline scenarios.
Test coverage
Confirmed: CI on this PR branch exercises setup-node end-to-end across the full matrix:
- Unit tests (injected, special-pages, github scripts) — pass
- Lint / stylelint / clean-tree — pass
- Integration tests (injected + special-pages, all browser projects) — pass
- Snapshots workflow — pass
- Build release branch — pass
- Production-deps smoke — pass
- CI gate — pass
There is no separate unit test for the GitHub Action itself; workflow execution is the integration test surface, and it is comprehensive here.
Dependency necessity
actions/setup-node remains the standard, maintained way to install a pinned Node version on GitHub-hosted runners. No simpler alternative is used elsewhere in this repo. The dependency is still needed.
Supply chain risk
| Factor | Assessment |
|---|---|
| Publisher | Official actions/setup-node from GitHub's actions org |
| Pinning | Major-version tag @v7 (existing repo convention, same as @v6) |
| Source | Dependabot semver-major bump |
| Blast radius | CI only; no runtime / shipped artifact impact |
| Risk level | Low |
Uncertain (informational, not blocking): Tag-based pins (@v7) trust the tag publisher. Commit-SHA pinning would harden supply chain further but is a repo-wide policy decision, not a requirement for this bump.
Confirmed issues
None.
Uncertain / informational concerns
- Layered caching (pre-existing): Workflows run both
setup-nodenpm cache and a customnode_modulescache. This predates v7 and is a valid pattern (npm cache helps onnode_modulescache miss). No action required for this PR. - Related open PR: #2796 bumps
actions/cachev5→v6 separately. Independent of this change; no conflict observed.
Follow-up PR
Not opened. No code or workflow fixes are required beyond this version bump. Checked for existing open PRs targeting setup-node fixes — none found.
Sent by Cursor Automation: Review dependabot


Bumps actions/setup-node from 6 to 7.
Release notes
Sourced from actions/setup-node's releases.
... (truncated)
Commits
8207627Migrate to ESM and upgrade dependencies (#1574)04be95cAdd cache-primary-key and cache-matched-key as outputs (#1577)7c2c68ddocs: Update caching recommendations to mitigate cache poisoning risks (#1567)6a61c03Merge pull request #1569 from jasongin/update-actions-cache-5.1.030eb73bResolve high-severity audit issues4e1a87aUpdate dist360237fStrict equality4f8aac5Bump@actions/cacheto 5.1.0, log cache write deniedf4a67bbOnly usemirrorTokeningetManifestif it's provided (#1548)0355742Remove dummy NODE_AUTH_TOKEN export (#1558)Note
Low Risk
CI workflow version pin only; no runtime or product code changes, though v7 is a major release so pipeline behavior should be validated on the next runs.
Overview
Upgrades every GitHub Actions workflow that installs Node from
actions/setup-node@v6toactions/setup-node@v7, including bot formatting, branch/release builds, coverage, semver labeling, snapshot tests, and the main test/deploy pipeline.Existing inputs are unchanged (
.nvmrcvianode-version-file,cache: 'npm'where already used). This is a CI-only dependency bump with no application code changes.Reviewed by Cursor Bugbot for commit eb266be. Bugbot is set up for automated code reviews on this repo. Configure here.