Skip to content

ci(workflow): pin Node in package.json devEngines instead of .nvmrc (SEC-104) - #241

Open
glebedel wants to merge 1 commit into
mainfrom
s2d2/sec-104-devengines-pin
Open

glebedel wants to merge 1 commit into
mainfrom
s2d2/sec-104-devengines-pin

Conversation

@glebedel

@glebedel glebedel commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

What

  • Moves the exact Node pin (22.23.4) from .nvmrc to package.json devEngines.runtime and deletes .nvmrc.
  • Workflows now read it with node-version-file: package.json. setup-node v6.3 and later read devEngines.runtime before engines.node, so CI gets the exact version, not the newest match of the engines range.
  • onFail: "warn": npm warns on a mismatch instead of failing, so a local Node that is a patch behind is flagged without blocking work. CI stays exact through setup-node.

Why

One place for the Node version, read by CI and by the package manager. .nvmrc is only read by nvm and setup-node, and an engines range alone would let CI float to whatever release is newest. Docker base images are pinned separately and are unchanged.

Local verification

hub node=v22.23.4 pm=npm install=0 build=0 lint=0

Refs SEC-104. Requested by guillaume@stackone.com in Slack.

🤖 Generated with Claude Code


Summary by cubic

Moves the pinned Node version (22.23.4) from .nvmrc to package.json devEngines.runtime so the version has a single source of truth read by both npm and CI. .nvmrc is deleted and both workflows now point node-version-file at package.json; setup-node reads devEngines.runtime before engines.node, so CI installs the exact pinned version instead of the newest release matching the range. onFail: "warn" flags a patch-behind local Node as a warning without blocking work.

Written for commit dd45571. Summary will update on new commits.

View guided diff Turn on auto-fix

One source per repo: devEngines.runtime 22.23.4 (onFail: warn) is read by
setup-node (node-version-file: package.json) in CI.

Refs SEC-104.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@glebedel glebedel self-assigned this Oct 30, 2026
Copilot AI balanced review requested due to automatic review settings October 30, 2026 18:47
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T18:48:10.433037Z dd45571 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing. Review the Copilot code review billing settings.

@glebedel glebedel changed the title ci(SEC-104): pin Node in package.json devEngines instead of .nvmrc ci(workflow): pin Node in package.json devEngines instead of .nvmrc (SEC-104) Oct 30, 2026
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