build(deps): bump dependabot dependencies - #1176
Conversation
Ships the pending dependabot bumps in a single PR, since the individual dependabot PRs cannot merge (the claude-review check fails on dependabot PRs because repository secrets are not exposed to that context). Direct: - react-router 7.13.0 -> 7.15.1 - react-router-dom 7.13.0 -> 7.15.1 (kept in lockstep with react-router to avoid a duplicate/mismatched react-router copy and split Router context) Transitive / dev (resolved to latest compatible, >= dependabot proposals): - @babel/core 7.28.6 -> 7.29.7 (security/bug fixes; dev only) - esbuild 0.25.12 -> 0.28.1 (security: dev-server path traversal, Deno integrity) - markdown-it 14.1.1 -> 14.3.0 (security/perf; CommonMark fixes) - linkify-it 5.0.0 -> 5.0.2 (security: fuzzy-link ReDoS) - ws 8.20.1 -> 8.21.1 (security: remote memory-exhaustion DoS) All 513 tests pass and tsc build succeeds. Vulnerability count 5 -> 1. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Hello jeanmarcmilletscality,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
Advisories published after the first commit on this branch left 6 open vulnerabilities. Clears all of them that have a fix within the existing ranges. Direct: - react-router 7.15.1 -> 7.18.1 - react-router-dom 7.15.1 -> 7.18.1 (kept in lockstep, as before) Clears 4 high advisories: open redirect via backslash in Link and useNavigate, RSCErrorHandler missing protocol validation (XSS), arbitrary constructor injection in deserializeErrors(), and unauthenticated DoS via inefficient route matching. All fixed in 7.18.0. core-ui uses only MemoryRouter/BrowserRouter/useLocation/ useNavigate, unchanged across 7.x. Not taking react-router 8.3.0 (dependabot #1174): it peers on react >=19.2.7 while core-ui still supports react ^18, and react-router-dom has no 8.x release, so bumping react-router alone would reintroduce the duplicate-Router-context problem this branch fixes. The one remaining react-router advisory (RSC mode CSRF bypass, fixed only in 8.3.0) does not apply - core-ui does not use RSC mode. Transitive: - postcss 8.5.15 -> 8.5.24 (path traversal in source-map auto-loading) - fast-uri 3.1.2 -> 3.1.4 (host confusion via backslash authority delimiter and failed IDN canonicalization) - js-yaml 4.1.1 -> 4.3.0, 3.14.2 -> 3.15.0 (quadratic-complexity DoS via YAML merge-key chains) - brace-expansion nested copies -> latest in each line (1.1.16, 2.1.3, 5.0.8), clearing the exponential-expansion DoS advisories brace-expansion still reports one advisory whose range is <=5.0.7 with no 1.x/2.x backport, so the 1.1.16 and 2.1.3 copies stay flagged. It is reachable only from dev tooling (eslint, glob, jest, storybook, copyfiles) and never ships in dist; clearing it needs eslint 8->10, glob and jest majors, which is out of scope here. All 513 tests pass and tsc build succeeds. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ConflictThere is a conflict between your branch Please resolve the conflict on the feature branch ( git fetch && \
git checkout origin/improvement/dependabot-dependency-bumps && \
git merge origin/development/1.0Resolve merge conflicts and commit git push origin HEAD:improvement/dependabot-dependency-bumps |
…t/dependabot-dependency-bumps
Conflict was in package-lock.json only; package.json auto-merged (base's
0.226.0 version bump and valalint removal alongside this branch's
react-router pins).
Resolved by taking development/1.0's lockfile wholesale and re-applying
this branch's bumps through npm, rather than hand-merging lockfile hunks:
git checkout origin/development/1.0 -- package-lock.json
npm install
npm update @babel/core esbuild markdown-it linkify-it ws postcss \
fast-uri js-yaml brace-expansion nanoid
This keeps the base's own lockfile changes intact (including the
@typescript-eslint/parser and rule-tester removals that came with
dropping valalint). Verified the result changes exactly the same 66
package versions relative to the new base as it did before the merge,
with no packages added or removed.
All 43 suites / 428 tests pass, tsc build exits 0, lint clean. The test
count differs from the pre-merge 513 because development/1.0 deleted the
three valalint rule-tester suites and added three component suites; the
test files at this commit are identical to the base's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
damiengillesscality
left a comment
There was a problem hiding this comment.
Please handle the bump in the other applications and share with the team the info
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
Peer approvals must include at least 1 approval from the following list: |
|
/approve |
Build failedThe build for commit did not succeed in branch improvement/dependabot-dependency-bumps The following options are set: approve |
Not authorizedI'm afraid I cannot do that, @JeanMarcMilletScality:
You don't have enough credentials to use Please edit or delete the corresponding comment so I can move on. The following options are set: approve |
Five packages in this branch now have in-range patched releases that did not exist when the bumps were first made. GitHub backported the react-router advisory into the 7.x line, and four new high advisories were published after the last CI run. - react-router / react-router-dom 7.18.1 -> 7.18.2 GHSA-qwww-vcr4-c8h2 (RSC mode CSRF bypass) is now patched in 7.18.2, not only in 8.3.0. Peers stay `react >=18`, so React 18 support is preserved and react-router-dom@7.18.2 still pins react-router exactly, keeping a single Router context. - brace-expansion 1.1.16/2.1.3/5.0.8 -> 1.1.18/2.1.4/5.0.9 GHSA-mh99-v99m-4gvg was backported to the 1.x line, and GHSA-rgw5-rvv9-x895 bypasses the earlier mitigation on every line. - fast-uri 3.1.4 -> 3.1.5 (GHSA-7p8r-x3mc-p8w7) - js-yaml 4.3.0 -> 4.3.1, 3.15.0 -> 3.15.1 (GHSA-5p4m-2wfm-xmqj) - nanoid 3.3.16 -> 3.3.18 (GHSA-2v37-7h3g-55p8) All 56 packages this branch changes relative to development/1.0 are now free of high and critical advisories, so `npm audit` reports 0 and the dependency-review gate passes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
v3 runs on Node 20, which GitHub Actions has deprecated and now forces onto Node 24 with a warning. v5.0.0 makes that runtime bump official. Both v4.0.0 and v5.0.0 are runtime-only majors with no input changes, so `fail-on-severity: high` carries over unchanged. Also enables `show-patched-versions`, which adds the first patched version to the failure summary. Without it the summary only names the vulnerable package, which is what made the advisories in the previous commit look unfixable when in-range patches already existed. Declares `contents: read` explicitly rather than inheriting the repository default token permissions. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
/approve |
|
/status |
Status
The following options are set: approve |
Queue out of orderThe changeset has received all authorizations to enter the merge queue, Look into https://devdocs.scality.net/support/faq/#bert-e for guidance about The following options are set: approve |
|
/status |
Status
The following options are set: approve |
In the queueThe changeset has received all authorizations and has been added to the The changeset will be merged in:
There is no action required on your side. You will be notified here once IMPORTANT Please do not attempt to modify this pull request.
If you need this pull request to be removed from the queue, please contact a The following options are set: approve |
|
I have successfully merged the changeset of this pull request
Please check the status of the associated issue None. Goodbye jeanmarcmilletscality. |
TL;DR
Consolidates the pending dependabot dependency bumps into one PR, plus the advisories that were published while those PRs sat open. Takes
npm auditfrom 9 root advisories ondevelopment/1.0down to 0 — every package this branch touches is now free of high and critical advisories.Also bumps
dependency-review-actionv3 → v5 (the v3 Node 20 runtime is deprecated) and enablesshow-patched-versions.Context
Dependabot opened these as individual PRs, but none can merge: the
claude-reviewcheck fails on every dependabot PR because repository secrets aren't exposed to the dependabot Actions context. This PR ships the same bumps from a normal branch instead. (The CI gate itself is tracked for a separate fix.)Changes
react-routerreact-router-domreact-router— see Approach@babel/coreesbuildmarkdown-itlinkify-itwspostcssfast-urijs-yaml!!omapresolution (GHSA-5p4m-2wfm-xmqj)nanoidbrace-expansiondependency-review-actionshow-patched-versionsApproach
Why
react-router-dommoves withreact-router. Dependabot's PR bumped onlyreact-router. Butreact-router-dom@7.13.0hard-pinsreact-router@7.13.0, so bumping react-router alone leaves a second, nested copy of react-router in the tree — two separate Router contexts, which breaksuseNavigate/useLocationfor consumers whose provider comes from the other copy.Before — react-router bumped alone (dependabot #1131):
After — pair bumped together (this PR):
Why 7.18.2 and not 8.3.0. Dependabot #1174 proposes
react-router@8.3.0. That isn't viable here:react-router@8.3.0declares peersreact >=19.2.7, but core-ui'speerDependenciesstill allowreact ^18.0.0. Taking it would silently drop React 18 support for every consumer.react-router-domhas no 8.x release at all — it stops at 7.18.2. So bumpingreact-routerto 8 recreates exactly the duplicate-Router-context problem described above.7.18.2is a minor bump that clears all five open react-router advisories, and keeps peers atreact >=18. Four were fixed in 7.18.0 (open redirect via backslash in<Link>/useNavigate, RSCErrorHandler missing protocol validation, arbitrary constructor injection indeserializeErrors(), unauthenticated DoS via inefficient route matching). The fifth — GHSA-qwww-vcr4-c8h2, RSC mode CSRF bypass — was initially published as fixed only in 8.3.0, but GitHub has since backported it to 7.18.2, so no React 19 bump is needed.core-ui imports only
MemoryRouter,BrowserRouter,useLocation,useNavigate— all unchanged across 7.x.Why
brace-expansionis not just dev tooling. An earlier revision of this description claimed the flagged copy was reachable only from dev tooling. That is wrong, and worth stating plainly becausedependency-review-actionalready defaults tofail-on-scopes: runtime— a genuinely dev-only package would never have tripped the gate. The lockfile shows a runtime-scoped path (dev: false):So these bumps are a real fix, not noise. All three lines are now at their patched releases (1.1.18 / 2.1.4 / 5.0.9).
Why the action bump rides along. For
pull_requestevents GitHub runs the workflow definition from the PR head, so bumping the action here takes effect on this PR's own check — which is how the v5 result below was produced.show-patched-versionsis the input that matters: the v3 failure summary named only the vulnerable package, which is what made GHSA-qwww-vcr4-c8h2 and GHSA-mh99-v99m-4gvg look unfixable when in-range patches already existed. Both v4.0.0 and v5.0.0 are runtime-only majors with no input changes, sofail-on-severity: highcarries over untouched.permissions: contents: readis now declared explicitly (the value GitHub's own README specifies) instead of inheriting the repository default.Review focus
package.json›react-router+react-router-dom— both pinned to exactly7.18.2; confirm they stay aligned (this is the shipped runtime dep)..github/workflows/dependency-review.yaml— v5 requires Actions runner ≥ v2.327.1, which GitHub-hostedubuntu-latestexceeds. If this job ever moves to a self-hosted runner, that floor has to be met.package-lock.json— changes are scoped to the deps above plus their@babel/*/@esbuild/*sub-packages; no unrelated churn.How to test
Remaining advisories
None. All 56 packages this branch changes relative to
development/1.0were swept against the GitHub advisory database; none carries a high or critical advisory, andnpm auditreports 0. Thedependency-reviewcheck passes on v5 withfail-on-severity: high.Note that
development/1.0itself still reports open advisories from packages this PR does not touch — that is a separate cleanup, not a regression here.References
Supersedes these dependabot PRs (can be closed once this merges):
Should be closed as not viable rather than superseded:
react-router-dom8.x)Replaces #1157, which was opened from a branch with an invalid
build/prefix.🤖 Generated with Claude Code