Commit Graph

27120 Commits

Author SHA1 Message Date
Jamie Tanna d91e6088ff fixup! test: set up mutation testing with Stryker
The `mutation-pr`/`mutation-full` CI jobs were failing outright, and a
full `stryker run` never got past the initial dry run, so none of this
was actually usable yet.

- `mutation.yml`: pin all actions to a commit SHA, add a `permissions`
  block, set `persist-credentials: false`, and pass the base ref/changed
  files through `env` instead of interpolating them into the shell
  script directly (zizmor was flagging all of these). Also switch to the
  project's own `./.github/actions/setup-node` composite action instead
  of `pnpm/action-setup`/`actions/setup-node` (which additionally
  referenced a non-existent `.node-version` file), and fix the `pnpm
  mutation`/`pnpm stryker run --mutate` calls to use the actual
  `test:mutation`/`test:mutation:changed` script names.
- Drop the now-unused `@stryker-mutator/typescript-checker` dependency,
  left over from when `stryker.config.json` still had `checkers:
  ["typescript"]`.
- `lib/util/timestamp.ts`: the local-timezone-offset fallback used in
  `asTimestamp()` was cached in a module-level constant computed once at
  import time. Combined with vitest's `threads` pool (used by Stryker's
  vitest-runner) not reliably honouring a `process.env.TZ` set from our
  own `test/setup.ts`, this made `asTimestamp()` parse plain dates (e.g.
  Jenkins' `buildDate: 'Jan 02, 2020'`) using the host's real timezone
  instead of UTC. Compute the offset per call instead, and set `TZ=UTC`
  in the actual environment via the `test:mutation*` scripts, since that's
  the one thing that reliably works across pools.
- `test/setup.ts`: restore real timers in a top-level `afterAll`, so a
  spec that leaves fake timers running (there's at least one) can't leak
  a frozen clock into whichever spec runs next in the same worker -
  something that's only reachable under low-concurrency/single-threaded
  execution.
- Raise `dryRunTimeoutMinutes` and the global vitest `testTimeout`: our
  full suite's per-test coverage instrumentation run took ~25 minutes
  end-to-end, well past Stryker's 5 minute default, and a couple of
  CPU-heavy specs (WASM PGP crypto) timed out under that contention too.
- Ignore `.stryker-tmp/` (Stryker's sandbox dir, which can survive an
  interrupted run) in ls-lint/oxlint/biome/prettier/vitest, since a
  leftover sandbox copy of the repo was otherwise picked up as extra
  source/test files and broke those tools outright.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-10 15:38:01 +01:00
Jamie Tanna 32e4896ee4 fixup! test: set up mutation testing with Stryker
Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-10 13:30:58 +01:00
Jamie Tanna 768041604e Merge remote-tracking branch 'origin/main' into test/mutation
# Conflicts:
#	package.json
#	pnpm-lock.yaml
2026-09-10 13:17:34 +01:00
RahulGautamSingh 9cecb86eca feat(config): add experimental exitCodeForErrors option (#45752)
* feat(config): add experimental exitCodeForErrors option

* feat(config): give unknown-error its own exit code

* docs: restore exit codes 1 and 2 to the table
44.77.0
2026-09-10 11:07:26 +00:00
Michael Kriese 9344de3dc0 ci: raise coverage thresholds to measured values (#45843)
Sets each floor to the current measured coverage, rounded down to two
decimals:

  statements  99.993944%  -> 99.99
  branches    98.703754%  -> 98.70
  functions  100%         -> 100
  lines       99.993880%  -> 99.99

This leaves very little slack by design: one uncovered branch is
0.00386%, so the branches floor tolerates none.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
44.76.0
2026-09-10 10:28:41 +00:00
Michael Kriese 8e965bfe2c chore: drop stale legacy-decryption coverage exclusion (#45841)
lib/config/decrypt/legacy.ts was removed in #39111, so
getCoverageIgnorePatterns() only ever excluded a path that no longer
exists, and the TEST_LEGACY_DECRYPTION workflow env var that gated it
was read by nothing else.

Coverage is unaffected: a full run reports the same numbers before and
after, so the thresholds stay as they are.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-10 10:28:40 +00:00
Michael Kriese 8e19aef903 test(util): cover remaining implicit else branches (#45840)
Two `if` statements had their implicit else path untested:

- deleteLocalFile: the no-localDir case never ran
- getMergeConfidenceLevel: the API returning an unrecognised confidence
  value never ran, so the 'neutral' fallback was untested

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-10 10:28:39 +00:00
Michael Kriese a4a5efa8c2 feat(manager/npm): support pnpm v11.23 url-keyed registries (#45844)
pnpm v11.23 reshaped the `registries` setting in `pnpm-workspace.yaml`: it
is now keyed by the registry URL, with the scopes routed to it listed in the
entry. Renovate only accepted the older `<scope>: <url>` shape, so parsing of
the whole workspace file failed and its catalogs and overrides were no longer
extracted at all.

Accept both shapes and flatten the new one into the old one, where the bare
`@` scope is the scope-less default registry. URL keys which interpolate an
env var, embed credentials, or are unparseable are skipped, matching what
pnpm itself ignores or refuses. A `registries` value which is neither shape
now falls back to `undefined` instead of taking the file's catalogs with it.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 10:27:20 +00:00
renovate[bot] 113ea82683 chore(deps): update dependency @biomejs/biome to v2.5.12 (main) (#45837)
chore(deps): update dependency @biomejs/biome to v2.5.12

| datasource | package        | from   | to     |
| ---------- | -------------- | ------ | ------ |
| npm        | @biomejs/biome | 2.5.11 | 2.5.12 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-10 07:31:46 +00:00
Michael Kriese dfc9890368 ci: tighten statements and functions coverage thresholds (#45833)
ci: tighten statements and functions thresholds

Both metrics have headroom against the current measured coverage
(statements 99.9899%, functions 99.9864%), so the floors can move up
without depending on any other pull request landing first.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-10 07:28:13 +00:00
Michael Kriese b5211d4944 test(util): cover remaining lib/util coverage gaps (#45832)
test(util): cover minimatchFilter and cachePathIsFile gaps

Brings lib/util to 100% coverage:

- minimatchFilter: the closure returned on the uncached path was never
  invoked, and the options-based cache key branch was never taken
- cachePathIsFile: only the "does not exist" path was tested, so
  stat().isFile() never ran

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-10 07:28:12 +00:00
renovate[bot] 619ce40237 build(deps): update dependency @redis/client to v6 (main) (#45789)
* build(deps): update dependency @redis/client to v6

| datasource | package       | from   | to    |
| ---------- | ------------- | ------ | ----- |
| npm        | @redis/client | 5.12.1 | 6.2.1 |

* fix(cache): keep RESP 2 protocol with @redis/client v6

@redis/client v6 defaults to RESP 3, which requires Redis server 6.0 or
newer and changed the default type parameters, breaking the RedisClient
type alias. Pin RESP 2 explicitly and type the client accordingly. The
switch to RESP 3 is deferred to the next major release.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
44.75.2
2026-09-10 07:15:13 +00:00
Michael Kriese 069c950574 ci: raise coverage thresholds (#45831)
Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-10 07:00:20 +00:00
renovate[bot] e11b40f2fe build(deps): update dependency node-html-parser to v9.0.3 (main) (#45829)
build(deps): update dependency node-html-parser to v9.0.3

| datasource | package          | from  | to    |
| ---------- | ---------------- | ----- | ----- |
| npm        | node-html-parser | 9.0.2 | 9.0.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.75.1
2026-09-10 02:27:12 +00:00
renovate[bot] 47de98feb7 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.97.0 (main) (#45828)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.97.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.96.2 | 13.97.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.75.0
2026-09-10 01:25:34 +00:00
renovate[bot] 1e3547bd4e fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.2 (main) (#45827)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.96.1 | 13.96.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.74.1
2026-09-09 23:27:13 +00:00
renovate[bot] c64e6bf9db chore(deps): update dependency memfs to v4.69.1 (main) (#45823)
chore(deps): update dependency memfs to v4.69.1

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | memfs   | 4.69.0 | 4.69.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 18:28:55 +00:00
renovate[bot] 760b8be911 chore(deps): update dependency astral-sh/uv to v0.12.12 (main) (#45821)
chore(deps): update dependency astral-sh/uv to v0.12.12

| datasource      | package      | from    | to      |
| --------------- | ------------ | ------- | ------- |
| github-releases | astral-sh/uv | 0.12.11 | 0.12.12 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 17:19:01 +00:00
renovate[bot] 4577384076 chore(deps): update dependency uv to v0.12.12 (main) (#45822)
chore(deps): update dependency uv to v0.12.12

| datasource      | package      | from    | to      |
| --------------- | ------------ | ------- | ------- |
| github-releases | astral-sh/uv | 0.12.11 | 0.12.12 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 17:18:55 +00:00
Will Slattum b5121c7b15 feat(presets): vale package versions custom manager (#45817)
* feat(presets): vale package versions custom manager

Co-Authored-By: Claude Code

* fix(presets): fix lint and type errors in valeVersions tests

Co-Authored-By: Claude Code

* fix(presets): fix vale.ini file pattern to use regex delimiter syntax

Co-Authored-By: Claude Code

* test(presets): update valeVersions examples and add non-pinned case

Co-Authored-By: Claude Code
44.74.0
2026-09-09 17:04:30 +00:00
renovate[bot] d37de94406 chore(deps): update dependency memfs to v4.69.0 (main) (#45820)
chore(deps): update dependency memfs to v4.69.0

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | memfs   | 4.68.2 | 4.69.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 16:31:01 +00:00
Sebastian Poxhofer 4573aa6ac8 feat(automerge): attempt branch automerge before falling back to a PR on merge queue rejection (#45724)
* feat(automerge): attempt branch automerge before falling back to a PR on merge queue rejection

* refactor(automerge): ask the platform instead of parsing merge queue rejection messages
44.73.0
2026-09-09 15:21:47 +00:00
Sebastian Poxhofer 5f91549447 feat(gitlab): merge MRs through merge trains via the platform merge queue API (#45722)
* feat(gitlab): merge MRs through merge trains via the platform merge queue API

* feat(gitlab): report MRs waiting on a merge train through isPrInMergeQueue

* test(gitlab): drop targetBranch from mergePr calls

* Apply suggestion from @secustor

* refactor(gitlab): validate the merge train car response with a Zod schema
2026-09-09 15:21:46 +00:00
Sebastian Poxhofer 7b25e97ba3 feat(github): add support for using merge queues without auto merge (#45721)
* feat(github): add experimental support for using merge queues without auto merge

* test(github): use vi.stubEnv for merge queue env flag

* fix(github): do not re-enqueue PRs already waiting in the merge queue

* refactor(github): reuse merge queue detection from #45252 for isBranchMergeQueueEnabled

* refactor(github): read the base branch from the PR instead of extending MergePRConfig

* feat(github): enable merge queue support without the RENOVATE_X_GITHUB_MERGE_QUEUE flag

* Apply suggestion from @secustor
2026-09-09 15:21:45 +00:00
renovate[bot] 40aedc3548 chore(deps): update github/codeql-action action to v4.38.0 (main) (#45816)
chore(deps): update github/codeql-action action to v4.38.0

| datasource  | package              | from    | to      |
| ----------- | -------------------- | ------- | ------- |
| github-tags | github/codeql-action | v4.37.9 | v4.38.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 14:23:24 +00:00
Sebastian Poxhofer b2d3b64c48 refactor(lint): enforce err key for errors in logger metadata (#45759)
* refactor(lint): enforce err key for errors in logger metadata

* refactor(lint): flag error message and stack strings in logger-err-key
44.72.0
2026-09-09 13:55:14 +00:00
Jamie Tanna f2896deaaf fix(merge-confidence): don't require auth in platform=local (#45769)
* fix(merge-confidence): don't require auth in `platform=local`

When dry-running Renovate against a repository to validate it[0], if a
repository is using `matchConfidence`, the whole Renovate run is aborted
due to missing API credentials.

This can be frustrating, and the workaround available is to temporarily
remove all package rules use `matchConfidence`, which isn't the best
experience.

Instead, we should follow the existing pattern to return `null` when
loading a Package Rule with `matchConfidence`, as well as DEBUG logging
to inform the user why this is happening.

[0]: https://www.jvt.me/posts/2026/03/08/renovate-test-config/

* fixup! fix(merge-confidence): don't validate auth in a

With debugging from Claude to work out how to get the test to pass.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>

---------

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-09 13:54:13 +00:00
Sebastian Poxhofer be13c9f5f7 feat(manager): share OCI Helm chart resolution across managers (#45760)
* feat(manager): share OCI Helm chart resolution across managers

Add getOciChartDep() to helmv3/oci.ts and use it in argocd, fleet, flux,
helmfile, helmsman, helmv3, kustomize, sveltos, terraform and vendir.

- set pinDigests: false for OCI charts in all of them
- apply registryAliases to OCI charts in argocd, helmfile and helmsman
- keep the registry port in terraform helm_release repositories
- skip fleet OCI charts without a version instead of using 'undefined'

* docs(manager/helmv3): correct the OCI chart pinDigests rationale

* refactor(manager/helmfile): drop redundant OCI repository url guard

The repository schema already requires url to be a string, so the falsy
branch could not be reached by parsed input and left the patch partially
covered.
2026-09-09 13:51:30 +00:00
renovate[bot] 9d74625d93 build(deps): update dependency prettier to v3.9.6 (main) (#45815)
* build(deps): update dependency prettier to v3.9.6

| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.8.1 | 3.9.6 |

* chore: prettier fixes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@mend.io>
2026-09-09 13:50:03 +00:00
renovate[bot] 0c4abf8a65 chore(deps): update dependency graphql to v17 (main) (#45814)
chore(deps): update dependency graphql to v17

| datasource | package | from    | to     |
| ---------- | ------- | ------- | ------ |
| npm        | graphql | 16.14.2 | 17.0.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.71.3
2026-09-09 13:32:55 +00:00
renovate[bot] 2428a40043 build(deps): update dependency xmldoc to v3 (main) (#45813)
build(deps): update dependency xmldoc to v3

| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | xmldoc  | 2.0.3 | 3.0.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 13:29:32 +00:00
Michael Kriese 634d3b6084 refactor: use modern neotraverse API (#45809)
* build(deps): update dependency neotraverse to v1

| datasource | package     | from   | to    |
| ---------- | ----------- | ------ | ----- |
| npm        | neotraverse | 0.6.18 | 1.0.1 |

* refactor: use modern neotraverse API

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 13:15:15 +00:00
renovate[bot] f36f91e5b2 build(deps): update dependency neotraverse to v1 (main) (#45806)
build(deps): update dependency neotraverse to v1

| datasource | package     | from   | to    |
| ---------- | ----------- | ------ | ----- |
| npm        | neotraverse | 0.6.18 | 1.0.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 13:15:14 +00:00
renovate[bot] c648a3bd70 build(deps): update commander to v15 (main) (#45804)
build(deps): update commander to v15

| datasource | package                     | from   | to     |
| ---------- | --------------------------- | ------ | ------ |
| npm        | @commander-js/extra-typings | 14.0.0 | 15.0.0 |
| npm        | commander                   | 14.0.3 | 15.0.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 13:09:59 +00:00
renovate[bot] 42cf188fdc chore(deps): update dependency astral-sh/setup-uv to v10 (main) (#45808)
chore(deps): update dependency astral-sh/setup-uv to v10

| datasource  | package            | from   | to      |
| ----------- | ------------------ | ------ | ------- |
| github-tags | astral-sh/setup-uv | v9.0.0 | v10.0.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.71.2
2026-09-09 12:46:52 +00:00
renovate[bot] e7d7be96c8 build(deps): update dependency node-html-parser to v9 (main) (#45807)
build(deps): update dependency node-html-parser to v9

| datasource | package          | from  | to    |
| ---------- | ---------------- | ----- | ----- |
| npm        | node-html-parser | 7.1.0 | 9.0.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 12:46:06 +00:00
renovate[bot] 8a1b8a4ff9 build(deps): update dependency google-auth-library to v11 (main) (#45805)
build(deps): update dependency google-auth-library to v11

| datasource | package             | from   | to     |
| ---------- | ------------------- | ------ | ------ |
| npm        | google-auth-library | 10.9.1 | 11.0.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 12:39:59 +00:00
renovate[bot] 0e5b2287e1 build(deps): update dependency markdown-it to v15 (main) (#45796)
* build(deps): update dependency markdown-it to v15

| datasource | package     | from   | to     |
| ---------- | ----------- | ------ | ------ |
| npm        | markdown-it | 14.3.1 | 15.0.1 |

* fix: migration

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@mend.io>
2026-09-09 12:32:23 +00:00
renovate[bot] c55a988a03 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.1 (main) (#45803)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.96.0 | 13.96.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.71.1
2026-09-09 11:31:11 +00:00
Gaël Jourdan-Weil 1d34441882 fix(http): improve warning message for ignored cross origin requests (#45802)
🐛 fix: improve warning message for ignored cross origin requests
44.71.0
2026-09-09 09:53:34 +00:00
renovate[bot] 0f33734c99 build(deps): update dependency got to v16 (main) (#45792)
build(deps): update dependency got to v16

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | got     | 15.1.0 | 16.0.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 09:32:57 +00:00
Michael Kriese 7c03a7e4ec feat(presets/workarounds): group commander major update packages (#45801) 2026-09-09 09:31:16 +00:00
MatyiFKBT 25fe03aa78 feat(presets/monorepo): add convex monorepo (#45797)
feat(config): add convex monorepo
2026-09-09 09:28:21 +00:00
Michael Kriese 909b5be25a chore(renovate): group commander packages for major updates (#45800) 2026-09-09 09:24:54 +00:00
renovate[bot] 4853c33bd6 build(deps): update dependency got to v15.1.0 (main) (#45799)
build(deps): update dependency got to v15.1.0

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | got     | 15.0.5 | 15.1.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 09:16:39 +00:00
renovate[bot] 2561284dc4 build(deps): update dependency got to v15 (main) (#43120)
* build(deps): update dependency got to v15

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | got     | 14.6.6 | 15.0.5 |

* chore: adapt code to breaking changes

* test: fix test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
Co-authored-by: Michael Kriese <michael.kriese@mend.io>
44.70.2
2026-09-09 09:01:11 +00:00
renovate[bot] 6501ecba05 build(deps): update dependency azure-devops-node-api to v17 (main) (#45790)
build(deps): update dependency azure-devops-node-api to v17

| datasource | package               | from   | to     |
| ---------- | --------------------- | ------ | ------ |
| npm        | azure-devops-node-api | 15.1.3 | 17.0.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.70.1
2026-09-09 07:36:01 +00:00
renovate[bot] f93caed14e chore(deps): update zizmor (main) (#45788)
chore(deps): update zizmor

| datasource  | package                   | from   | to     |
| ----------- | ------------------------- | ------ | ------ |
| docker      | ghcr.io/zizmorcore/zizmor | 1.30.0 | 1.30.1 |
| github-tags | zizmorcore/zizmor-action  | v0.6.3 | v0.6.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.70.0
2026-09-09 06:26:17 +00:00
renovate[bot] ab056dce31 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.0 (main) (#45783)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.96.0

| datasource | package                        | from     | to      |
| ---------- | ------------------------------ | -------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.95.14 | 13.96.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-09-09 06:26:14 +00:00
renovate[bot] 1fe9e0b215 build(deps): update dependency node to v24.21.0 (main) (#45787)
build(deps): update dependency node to v24.21.0

| datasource      | package                     | from    | to      |
| --------------- | --------------------------- | ------- | ------- |
| github-releases | containerbase/node-prebuild | 24.20.0 | 24.21.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.69.14
2026-09-09 05:24:56 +00:00