[!NOTE] This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| vitest (source) | ^0.15.2 → ^3.0.0 |
When Vitest UI server is listening, arbitrary file can be read and executed
CVE-2026-47429 / GHSA-5xrq-8626-4rwp
More information
Details
Summary
Arbitrary file can be read on Windows when Vitest UI server is listening, especially when exposed to the network.
Impact
Only users that match either of the following conditions are affected:
- explicitly exposes the Vitest UI server to the network (using
--api.hostorapi.hostconfig option) - running the Vitest UI or Browser Mode on Windows
Details
The API handler for /__vitest_attachment__ uses the deprecated isFileServingAllowed incorrectly.
https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts#L77
The function expects the passed value to use cleanUrl after the check before file system related operation.
Because of this, it is possible to bypass the check by \\?\\..\\. This is not possible on Linux as Linux errors if a directory named ? does not exist.
A similar problem exists in other places as well.
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L103-L105
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L119-L121
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/commands/fs.ts#L10-L11
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/plugin.ts#L194-L196
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/rpc.ts#L115-L121
That said, this isFileServingAllowed check does not actually prevent the API to be abused. Since the API has rerun feature and file write feature, it's possible to run arbitrary script by writing a script as a test file using saveTestFile and running it using rerun. This means exposing the API / Vitest UI is equivalent to giving script execution access.
On the browser mode side, there're readFile / writeFile / saveSnapshotFile. So exposing the browser mode is equivalent to giving file read / write access.
PoC
- Run Vitest UI
- Get the API token by
curl http://localhost:51204/__vitest__/ - Run
curl "http://localhost:51204/__vitest_attachment__?path=C:\\path\\to\\project\\?\\..\\..\\secret.txt&contentType=text/plain&token=$TOKEN"(TOKEN is the API token) - curl shows the content of
secret.txtthat is outside the project directory
Mitigations
Vitest now ships two configuration flags, allowWrite and allowExec, that gate the privileged operations exploited by this vulnerability. Both are disabled by default whenever the API server is bound to a non-localhost host, ensuring that exposing the server to the network no longer implicitly grants write or execute capabilities to remote clients.
When these flags are disabled, the UI also enters a read-only mode: in-browser code editing and test file execution are turned off, removing the attack surface that allowed remote code execution. Many Browser Mode features are also disabled, like attachments, artifacts or snapshots. See browser.api.
Users who require the full interactive UI on a networked host must explicitly opt in by setting allowWrite and/or allowExec to true.
Severity
- CVSS Score: 9.8 / 10 (Critical)
- Vector String:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References
- https://github.com/vitest-dev/vitest/security/advisories/GHSA-5xrq-8626-4rwp
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/commands/fs.ts#L10-L11
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/plugin.ts#L194-L196
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/browser/src/node/rpc.ts#L115-L121
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/ui/node/index.ts#L77
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L103-L105
- https://github.com/vitest-dev/vitest/blob/eb1abf08573032a532015b999ad3501c5e89e3bb/packages/vitest/src/api/setup.ts#L119-L121
- https://nvd.nist.gov/vuln/detail/CVE-2026-47429
- https://github.com/vitest-dev/vitest/pull/10445
- https://github.com/vitest-dev/vitest/pull/9350
- https://github.com/vitest-dev/vitest/commit/20e00ef7808de6d330c5e2fda530f686e08f1c8d
- https://github.com/vitest-dev/vitest/commit/af88b1f5d82844a4761ea9a977156c98e2b14ca8
- https://github.com/vitest-dev/vitest/releases/tag/v3.2.5
- https://github.com/vitest-dev/vitest/releases/tag/v4.1.0
- https://github.com/advisories/GHSA-5xrq-8626-4rwp
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
vitest-dev/vitest (vitest)
v3.2.6
🐞 Bug Fixes
- Pin last supported vite-node version - by @sheremet-va <samp>(16f12)</samp>
View changes on GitHub
v3.2.5
🚀 Features
- api: Add
allowWriteandallowExecoptions toapi[backport to v3] - by @hi-ogawa and Codex in #10445 <samp>(af88b)</samp>
🐞 Bug Fixes
- browser: Disable client
cdpAPI whenallowWrite/allowExec: false[backport to v3] - by @hi-ogawa and Codex in #10456 <samp>(385a1)</samp>
View changes on GitHub
v3.2.4
🐞 Bug Fixes
- Use correct path for optimisation of strip-literal - by @mrginglymus in #8139 <samp>(44940)</samp>
- Print uint and buffer as a simple string - by @sheremet-va in #8141 <samp>(b86bf)</samp>
- browser:
- Show a helpful error when spying on an export - by @sheremet-va in #8178 <samp>(56007)</samp>
- cli:
vitest run --watchshould be watch-mode - by @AriPerkkio in #8128 <samp>(657e8)</samp>- Use absolute path environment on Windows - by @colinaaa in #8105 <samp>(85dc0)</samp>
- Throw error when
--shard x/<count>exceeds count of test files - by @AriPerkkio in #8112 <samp>(8a18c)</samp>
- coverage:
- Ignore SCSS in browser mode - by @sheremet-va in #8161 <samp>(0c3be)</samp>
- deps:
- Update all non-major dependencies - in #8123 <samp>(93f32)</samp>
- expect:
- Handle async errors in expect.soft - by @lzl0304 in #8145 <samp>(68699)</samp>
- pool:
- Auto-adjust
minWorkerswhen onlymaxWorkersspecified - by @AriPerkkio in #8110 <samp>(14dc0)</samp>
- Auto-adjust
- reporter:
task.metashould be available in custom reporter's errors - by @AriPerkkio in #8115 <samp>(27df6)</samp>
- runner:
- Preserve handler wrapping on extend - by @pengooseDev in #8153 <samp>(a9281)</samp>
- ui:
- Ensure ui config option works correctly - by @lzl0304 in #8147 <samp>(42eeb)</samp>
View changes on GitHub
v3.2.3
🚀 Features
- browser: Use base url instead of vitest - by @sheremet-va in #8126 <samp>(1d8eb)</samp>
- ui: Show test annotations and metadata in the test report tab - by @sheremet-va in #8093 <samp>(c69be)</samp>
🐞 Bug Fixes
- Rerun tests when project's setup file is changed - by @sheremet-va in #8097 <samp>(0f335)</samp>
- Revert
expect.anyreturn type - by @sheremet-va in #8129 <samp>(47514)</samp> - Run only the name plugin last, not all config plugins - by @sheremet-va in #8130 <samp>(83862)</samp>
- pool:
- Throw if user's tests use
process.send()- by @AriPerkkio in #8125 <samp>(dfe81)</samp>
- Throw if user's tests use
- runner:
- Fast sequential task updates missing - by @AriPerkkio in #8121 <samp>(7bd11)</samp>
- Comments between fixture destructures - by @AriPerkkio in #8127 <samp>(dc469)</samp>
- vite-node:
- Unable to handle errors where sourcemap mapping empty - by @blake-newman and @hi-ogawa in #8071 <samp>(8aa25)</samp>
View changes on GitHub
v3.2.2
🚀 Features
- Support rolldown-vite - by @sheremet-va and @hi-ogawa in #7509 <samp>(c8d62)</samp>
🐞 Bug Fixes
- browser:
- Calculate prepare time from
createTesterscall on the main thread - by @sheremet-va in #8101 <samp>(142c7)</samp> - Optimize build output and always prebundle vitest - by @sheremet-va <samp>(00a39)</samp>
- Make custom locators available in
vitest-browser-*packages - by @sheremet-va in #8103 <samp>(247ef)</samp>
- Calculate prepare time from
- expect:
- Ensure we can always self
toEqual- by @dubzzz in #8094 <samp>(02ec8)</samp>
- Ensure we can always self
- reporter:
- Allow
dotreporter to work in non interactive terminals - by @bstephen1 and @AriPerkkio in #7994 <samp>(6db9f)</samp>
- Allow
View changes on GitHub
v3.2.1
🐞 Bug Fixes
- Use sha1 instead of md5 for hashing - by @sheremet-va <samp>(e4c73)</samp>
- expect:
- Fix chai import in dts - by @hi-ogawa in #8077 <samp>(a7593)</samp>
- Export
DeeplyAllowMatchers- by @sheremet-va in #8078 <samp>(30ab4)</samp>
View changes on GitHub
v3.2.0
🚀 Features
- Provide
ctx.signal- by @sheremet-va in #7878 <samp>(e761f)</samp> - Support custom colors for
test.name- by @AriPerkkio in #7809 <samp>(4af5d)</samp> - Add
vi.mockObjectto automock any object - by @hi-ogawa and @sheremet-va in #7761 <samp>(465bd)</samp> - Introduce
watchTriggerPatternsoption - by @sheremet-va in #7778 <samp>(a0675)</samp> - Deprecate
workspacein favor ofprojects- by @sheremet-va and @AriPerkkio in #7923 <samp>(41beb)</samp> - Explicit Resource Management support in mocked functions - by @EskiMojo14 in #7927 <samp>(b67d3)</samp>
- Add
sequence.groupOrderoption - by @sheremet-va in #7852 <samp>(d1a1d)</samp> - Initial support for Temporal equality - by @dirkluijk in #8007 <samp>(52bd7)</samp>
- Support Vite 7 - by @sheremet-va in #8003 <samp>(1716b)</samp>
- Track module execution totalTime and selfTime - by @abrenneke in #8027 <samp>(95961)</samp>
- Annotation API - by @sheremet-va in #7953 <samp>(b03f2)</samp>
- browser:
- Implement
connectoption forplaywrightbrowser provider - by @egfx-notifications and @sheremet-va in #7915 <samp>(029c0)</samp> - Add
screenshot.saveoption - by @sheremet-va in #7777 <samp>(d9f51)</samp> - Custom locators API - by @sheremet-va in #7993 <samp>(e6fbd)</samp>
- Implement
- coverage:
- V8 experimental AST-aware remapping - by @AriPerkkio in #7736 <samp>(78a3d)</samp>
- reporter:
- Add
onWritePathoption togithub-actions- by @nwalters512 and @AriPerkkio in #8015 <samp>(abd3b)</samp>
- Add
- vitest:
- Allow per-file and per-worker fixtures - by @sheremet-va and @AriPerkkio in #7704 <samp>(9cbfc)</samp>
🐞 Bug Fixes
- Replace
micromatchwithpicomatch- by @sapphi-red in #7951 <samp>(df076)</samp> - Try to catch unhandled error outside of a test - by @sheremet-va in #7968 <samp>(46421)</samp>
- Generate a separate config for "vitest init browser" instead of a workspace file - by @sheremet-va in #7934 <samp>(e84e2)</samp>
- Switch ExpectStatic
anytypes toAsymmetricMatcher<unknown>, withDeeplyAllowMatchers<T>- by @JoshuaKGoldberg in #7016 <samp>(8ec44)</samp> - Remove unused exports - by @sheremet-va in #7618 <samp>(33d05)</samp>
- Throw an error if typechecker failed to spawn - by @sheremet-va in #7990 <samp>(0e960)</samp>
- Ignore non-string
stackproperties - by @sheremet-va in #7995 <samp>(330f9)</samp> - Apply browser CLI options only if the project has the browser set in the config already - by @sheremet-va in #7984 <samp>(70358)</samp>
- Ensure errors keep their message and stack after
toJSONserialisation - by @sheremet-va in #8053 <samp>(3bdf0)</samp> - browser:
- Resolve FS commands relative to the project root - by @sheremet-va in #7896 <samp>(69ac9)</samp>
- Run tests serially if provider doesn't provide a mocker - by @sheremet-va in #8032 <samp>(227a9)</samp>
- Resolve
uploadfiles relative to the project root - by @sheremet-va in #8042 <samp>(b9a31)</samp> - Await mocker invalidation to avoid race condition with "mock wasn't registered" - by @sheremet-va in #8021 <samp>(b34ff)</samp>
- Share vite cache with the project cache - by @sheremet-va in #8049 <samp>(0cbad)</samp>
- Add
thistype tolocators.extend- by @sheremet-va in #8069 <samp>(70fb0)</samp>
- cache:
- Preserve test results from previous runs - by @macko911 in #8043 <samp>(d6ef0)</samp>
- cli:
- Add built-in reporters list to --help output - by @pengooseDev in #7955 <samp>(ef6ef)</samp>
- Parse
--silentvalues properly - by @AriPerkkio in #8055 <samp>(8fad7)</samp>
- coverage:
- Istanbul provider to not use Vite preserved query params - by @AriPerkkio in #7939 <samp>(a05d4)</samp>
- Browser + v8 in source tests missing - by @AriPerkkio in #7946 <samp>(51cd8)</samp>
- In-source test cases excluded - by @AriPerkkio in #7985 <samp>(407c0)</samp>
- dev:
- Fix relay of custom equality testers - by @StefanLiebscher in #6140 <samp>(6dc1d)</samp>
- expect:
- Unbundle
@types/chai- by @hi-ogawa in #7937 <samp>(525f5)</samp> - Support type-safe declaration of custom matchers - by @kettanaito and @sheremet-va in #7656 <samp>(e996b)</samp>
- Unbundle
- reporters:
- Check the test result again when tests are rerunning - by @sheremet-va in #8063 <samp>(35e31)</samp>
- spy:
- Copy over static properties from the function - by @sheremet-va in #7780 <samp>(9b9f0)</samp>
- typecheck:
- Don't panic during
vitest listcommand - by @sheremet-va in #7933 <samp>(ba6da)</samp> - Avoid creating a temporary tsconfig file when typechecking - by @sheremet-va in #7967 <samp>(34f43)</samp>
- Don't panic during
- vite-node:
- Add
__vite_ssr_exportName__- by @hi-ogawa in #7925 <samp>(76091)</samp>
- Add
- vitest:
- Adjust
getWorkerMemoryLimitpriority for vmForks - by @pengooseDev in #7960 <samp>(5a91e)</samp>
- Adjust
- wdio:
- Don't scale browser in headless mode - by @sheremet-va in #8033 <samp>(c23b0)</samp>
View changes on GitHub
v3.1.4
🐞 Bug Fixes
- Apply browser CLI options only if the project has the browser set in the config already - by @sheremet-va in #8002 <samp>(64f2b)</samp>
View changes on GitHub
v3.1.3
🐞 Bug Fixes
- Correctly resolve vitest import if
inline: trueis set - by @sheremet-va in #7856 <samp>(a83f3)</samp> - Fix fixture parsing with lowered async with esbuild 0.25.3 - by @hi-ogawa in #7921 <samp>(c5c85)</samp>
- Remove event-catcher code - by @sheremet-va in #7898 <samp>(deb1b)</samp>
- Reset mocks on test retry/repeat - by @sheremet-va in #7897 <samp>(2fa76)</samp>
- Ignore failures on writeToCache - by @orgads in #7893 <samp>(8c7f7)</samp>
- browser: Correctly inherit CLI options - by @sheremet-va in #7858 <samp>(03660)</samp>
- deps: Update all non-major dependencies - in #7867 <samp>(67ef7)</samp>
- reporters:
--merge-reportsto show each total run times - by @AriPerkkio in #7877 <samp>(d613b)</samp>
View changes on GitHub
v3.1.2
🐞 Bug Fixes
- Add global
chaivariable invitest/globals(fix: #7474) - by @Jay-Karia in #7771 and #7474 <samp>(d9297)</samp> - Prevent modifying
test.excludewhen same object passed incoverage.exclude- by @AriPerkkio in #7774 <samp>(c3751)</samp> - Fix already hoisted mock - by @hi-ogawa in #7815 <samp>(773b1)</samp>
- Fix test.scoped inheritance - by @hi-ogawa in #7814 <samp>(db6c3)</samp>
- Remove pointer-events-none after resizing the left panel - by @alexprudhomme in #7811 <samp>(a7e77)</samp>
- Default to run mode when stdin is not a TTY - by @kentonv, @hi-ogawa and @sheremet-va in #7673 <samp>(6358f)</samp>
- Use happy-dom/jsdom types for
envionmentOptions- by @hi-ogawa in #7795 <samp>(67430)</samp> - browser:
- Fix transform error before browser server initialization - by @hi-ogawa in #7783 <samp>(5f762)</samp>
- Fix mocking from outside of root - by @hi-ogawa in #7789 <samp>(03f55)</samp>
- Scale iframe for non ui case - by @hi-ogawa in #6512 <samp>(c3374)</samp>
- coverage:
awaitprofiler calls - by @AriPerkkio in #7763 <samp>(795a6)</samp>- Expose profiling timers - by @AriPerkkio in #7820 <samp>(5652b)</samp>
- deps:
- Update all non-major dependencies - in #7765 <samp>(7c3df)</samp>
- Update all non-major dependencies - in #7831 <samp>(15701)</samp>
- runner:
- Correctly call test hooks and teardown functions - by @sheremet-va in #7775 <samp>(3c00c)</samp>
- Show stacktrace on test timeout error - by @hi-ogawa in #7799 <samp>(df33b)</samp>
- ui:
- Load panel sizes from storage on initial load - by @userquin in #7265 <samp>(6555d)</samp>
- vite-node:
- Named export should overwrite export all - by @hi-ogawa in #7846 <samp>(5ba0d)</samp>
- Add ERR_MODULE_NOT_FOUND code error if module cannot be loaded - by @sheremet-va in #7776 <samp>(f9eac)</samp>
🏎 Performance
- browser: Improve browser parallelisation - by @sheremet-va in #7665 <samp>(816a5)</samp>
View changes on GitHub
v3.1.1
🐞 Bug Fixes
- reporter:
- Report tests in correct order - by @sheremet-va in #7752 <samp>(b166e)</samp>
- Print test only once in the verbose mode - by @sheremet-va in #7738 <samp>(69ca4)</samp>
View changes on GitHub
v3.1.0
🚀 Features
- Introduce
%$option to add number of the test to its title - by @kemuridama in #7412 <samp>(df347)</samp> - Add
diff.maxDepthoption and set non-Infinityvalue as a default to reduce crash - by @hi-ogawa in #7481 <samp>(eacab)</samp> - Allow array element for
test.each/fortitle formatting - by @hi-ogawa in #7522 <samp>(ea3d6)</samp> - Add "configureVitest" plugin hook - by @sheremet-va and @AriPerkkio in #7349 <samp>(20a5d)</samp>
- Support
--configLoaderCLI option - by @Carnageous and @hi-ogawa in #7574 <samp>(2a852)</samp> - Added
vitest-browser-littovitest init browserand docs - by @EskiMojo14 and @hi-ogawa in #7705 <samp>(5659a)</samp> - Use providers request interception for module mocking - by @sheremet-va in #7576 <samp>(7883a)</samp>
- browser:
- Introduce
and,orandfilterlocators - by @sheremet-va and @AriPerkkio in #7463 <samp>(63949)</samp>
- Introduce
- reporter:
- Always render test time - by @AriPerkkio and @spamshaker in #7529 <samp>(5eba6)</samp>
--silent=passed-onlyto log failed tasks only - by @AriPerkkio in #7530 <samp>(f9e1c)</samp>
- runner:
- Add
test.scopedto overridetest.extendfixtures per-suite - by @sheremet-va in #7233 <samp>(e5851)</samp>
- Add
- vitest:
- Allow conditional
context.skip(boolean)- by @sheremet-va and @AriPerkkio in #7659 <samp>(6adec)</samp> - Support rolldown-vite in NormalizeUrlPlugin - by @sapphi-red and @sheremet-va in #7739 <samp>(1ef31)</samp>
- Allow conditional
🐞 Bug Fixes
- Update test stats regularly - by @hi-ogawa in #7700 <samp>(b7953)</samp>
- Fix vm tests flakiness - by @sheremet-va in #7741 <samp>(2702c)</samp>
- Set
diff.expand: falseas default - by @hi-ogawa in #7697 <samp>(f3420)</samp> - browser:
- Correctly calculate timeout in hooks when actions are performed - by @sheremet-va in #7747 <samp>(a5505)</samp>
- deps:
- Update all non-major dependencies - by @hi-ogawa in #7600 <samp>(7fc5a)</samp>
- reporter:
--hideSkippedTestsshould hide suites too - by @AriPerkkio in #7695 <samp>(ba9b5)</samp>- Report tests in correct order - by @sheremet-va in #7752 <samp>(b166e)</samp>
- Print test only once in the verbose mode - by @sheremet-va in #7738 <samp>(69ca4)</samp>
- snapshot:
- Fix indent normalization - by @hi-ogawa in #7400 <samp>(82997)</samp>
- This change can cause small amount of very old snapshots to be updated, but there will be no functional change to how they work.
🏎 Performance
- browser: Fork jest-dom instead of bundling it - by @sheremet-va in #7605 <samp>(12762)</samp>
View changes on GitHub
v3.0.9
🐞 Bug Fixes
- Typings of
ctx.skip()asnever- by @sirlancelot in #7608 <samp>(09f35)</samp> - Cleanup vitest in public
resolveConfigAPI - by @hi-ogawa in #7623 <samp>(db14a)</samp> - Fix
toHaveBeenCalledWith(asymmetricMatcher)withundefinedarguments - by @hi-ogawa in #7624 <samp>(0fb21)</samp> - Race condition in RPC filesystem cache. - by @dts in #7531 <samp>(b7f55)</samp>
- Fix
getState().testPathduring collection with no isolation - by @hi-ogawa in #7640 <samp>(3fb3f)</samp> - Support custom toString method in %s format - by @pengooseDev in #7637 <samp>(46d93)</samp>
- browser:
- Fail playwright timeouts earlier than a test timeout - by @sheremet-va and @hi-ogawa in #7565 <samp>(5eb4c)</samp>
- Remove @testing-library/dom from dependencies #7555)" - by @sheremet-va in #7628 and #7555 <samp>(94b27)</samp>
- coverage:
- Browser mode +
coverage.all- by @AriPerkkio in #7597 <samp>(422ba)</samp>
- Browser mode +
- runner:
- Show stacktrace on hook timeout error - by @hi-ogawa in #7502 <samp>(268a1)</samp>
- vite-node:
- Fix source map of inlined node_modules - by @hi-ogawa in #7557 <samp>(34aa3)</samp>
- Fix missing
buildStart- by @hi-ogawa in #7652 <samp>(29f5a)</samp>
- web-worker:
- Ensure
removeEventListeneris bound to worker - by @joelgallant in #7631 <samp>(ff42b)</samp>
- Ensure
View changes on GitHub
v3.0.8
🐞 Bug Fixes
- Fix fetch cache multiple writes - by @hi-ogawa in #7546 <samp>(1a8b4)</samp>
- Use browser.isolate instead of config.isolate - by @sheremet-va in #7560 <samp>(4b5ed)</samp>
- Remove vestigial spy stub, import directly from
@vitest/spy- by @mrginglymus in #7575 <samp>(7f7ff)</samp> - Correctly split the argv string - by @btea in #7533 <samp>(4325a)</samp>
- browser:
- Remove @testing-library/dom from dep
[!IMPORTANT] ✂ PR body was truncated to here.
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.