Commit Graph

27161 Commits

Author SHA1 Message Date
renovate[bot] 1d2e37d91d chore(deps): update github/codeql-action action to v4.37.7 (main) (#45264)
chore(deps): update github/codeql-action action to v4.37.7

| datasource  | package              | from    | to      |
| ----------- | -------------------- | ------- | ------- |
| github-tags | github/codeql-action | v4.37.6 | v4.37.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.29.0
2026-08-13 13:59:07 +00:00
renovate[bot] 50252c5fbc chore(deps): update dependency vite to v8.2.1 (main) (#45263)
chore(deps): update dependency vite to v8.2.1

| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | vite    | 8.2.0 | 8.2.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-13 13:59:04 +00:00
Langning Zhang baed686520 feat(config): support base branch patterns via CLI (#45257) 2026-08-13 13:56:35 +00:00
Sebastian Poxhofer 874f3e3953 feat(presets): support relative paths inside a preset repo (#45211)
* feat(presets): support relative `extends` references inside presets

Presets which are fetched from a repository can now reference sibling
presets relatively, instead of repeating their own source, repository and
tag:

- `./x` resolves against the directory of the preset file with the
  reference
- `../x` resolves against the parent directory of that file
- `/x` resolves against the root of the preset repository

The source, repository and tag of the preset which holds the reference are
inherited, so `./system/registries` inside `github>org/repo#v2.0.0`
resolves to `github>org/repo//system/registries#v2.0.0`. A reference which
resolves to the `default` preset at the repository root is emitted in the
plain repository form, so `github>org/repo#v2.0.0`, which keeps it
deduplicated against the way consumers spell the very same preset.

A reference must stay inside its repository, its final path segment must
name a preset file rather than a directory, and it can carry parameters
but neither its own `#tag` nor a `:subPreset`. Parameters may contain a
Handlebars template, including a sub-expression such as
`./group({{ lower (env.TEAM) }})`, while a templated path cannot be
resolved and is left alone. A reference must also not carry a source
prefix, so strings such as `local>./x` or `github>../x` are rejected as
invalid.

References are canonicalized lazily, while the preset which holds them is
fetched in `getPreset()`, after migration and massaging. Only presets from
a repository hosted source, so `github`, `gitlab`, `gitea`, `forgejo` and
`local`, are walked. A relative reference which has no parent preset, for
example in a repository config, an inherited config or in `globalExtends`,
is reported as a validation error for that entry.

Relative entries of a preset's `ignorePresets` are resolved in the same
way, so a preset can neutralize a preset which it references relatively,
as long as the consuming repository does not set `ignorePresets` itself.
A reference which cannot be resolved is kept raw and logged, which lets
consumers neutralize it with `ignorePresets`, and it only fails per entry.

Because relative references cannot be resolved while a config is
validated, they are stripped from a `packageRules` entry before its
presets are resolved. A rule which is then left without any selector is
reported as a warning rather than as an error, since the stripped preset
may still provide the missing selectors. Rules without relative references
keep failing hard as before.

The `renovate-config` manager reports relative and unparsable `extends`
entries with a skipReason, instead of dropping them, and ignores templated
entries which can only be resolved at runtime.

Behavior change: an `extends` string which starts with `./`, `../` or `/`,
such as `./x`, `../x` or `/x`, is now read as a relative reference. Before
it was parsed as a local repository name, which in rare cases could
accidentally resolve through the dot segment normalization of the request
URL. For the same reason a source prefixed relative looking string, such
as `local>/org/repo`, `github>./x` or `npm>./x`, is now rejected as an
invalid preset.

* fix(presets): parse scoped npm presets with explicit `npm>` prefix

`npm>@scope/name` was parsed as a local preset, because the heuristic for
local presets matched before the `npm>` prefix was stripped.

Every other use of `npm>` keeps its current behavior, so `npm>foo` still
falls back to the npm package `renovate-config-foo`, `npm>owner/repo` is
still resolved as a local preset and nested prefixes such as
`local>npm>foo` keep working.

* refactor: remove duplicated preset source

* docs: streamline new docs

* add more docs for skipReason and add requested changes

* Apply suggestions from code review

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>

* test(presets): drop object literal type casts in relative preset spec

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2026-08-13 13:54:50 +00:00
Sebastian Poxhofer 91cc7c7c66 refactor(oxlint): enable no-undef (#44897)
Enables the `no-undef` rule at `error`. The rule was previously
unusable because `.oxlintrc.json` declared no `env`/`globals`, so
every reference to a runtime global was reported (36,672 diagnostics).

Adds the missing environment configuration:

- Top level `env`: `node` (Node.js + CommonJS globals such as
  `process`, `Buffer`, `console`, `require`, `module`, `__dirname`,
  needed by `lib/`, `tools/` and the `.github` scripts) and `es2025`,
  matching `"lib": ["ES2025"]` in `tsconfig.json`.
- Test-only globals are scoped to the existing
  `["**/*.spec.ts", "test/**"]` override instead of polluting the top
  level: the built-in `vitest` env covers `describe`, `it`, `test`,
  `expect`, `expectTypeOf`, `vi`, `beforeEach`/`afterEach`/
  `beforeAll`/`afterAll`, mirroring `"types": ["vitest/globals"]`.
- The repo's own `fixtures` global, installed in `test/setup.ts` via
  `Object.defineProperty(global, 'fixtures', ...)`, is declared as a
  readonly global in the same override.

Full lint run over all 2,575 files reports zero diagnostics.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 13:43:41 +00:00
Sebastian Poxhofer 5ea02b5438 test(oxlint): enable nursery rules with zero violations (#44896)
refactor(oxlint): enable nursery rules with zero violations

Enable three oxlint nursery rules that already have no violations in
the codebase:

- `import/export`
- `promise/no-return-in-finally`
- `unicorn/no-useless-iterator-to-array`

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 13:41:33 +00:00
renovate[bot] c3c0226281 chore(deps): update jdx/mise-action action to v4.2.5 (main) (#45262)
chore(deps): update jdx/mise-action action to v4.2.5

| datasource  | package         | from   | to     |
| ----------- | --------------- | ------ | ------ |
| github-tags | jdx/mise-action | v4.2.4 | v4.2.5 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.28.0
2026-08-13 11:34:59 +00:00
Thinh Nguyen ab105e6e42 feat(gomod): add gomodTidyAll option for indirect dependency updates in Go monorepos (#37138)
* feat(gomod): add `gomodTidyAll` option for indirect dependency updates in Go monorepos

In Go monorepos it is common for one module to depend on another in the
same repo via a local `replace` directive (e.g. `replace example.com/shared
=> ../shared`). When Renovate updates the shared module, today `go mod
tidy` runs only in that module, leaving dependent `go.sum` files stale.

Add a new `gomodTidyAll` post-update option that:

- Discovers every `go.mod` in the repo and parses its local `replace`
  directives (both inline and block form).
- Builds a dependency graph with `graph-data-structure`, with edges from
  dependency → dependent, matching the existing NuGet convention.
- Runs `go mod tidy` on every transitive dependent in topological order,
  propagating any `gomodTidy1.17` / `gomodTidyE` flags to the dependent
  commands.
- Collects updated `go.mod` and `go.sum` files from each dependent
  directory into the artifact result.
- Implies `gomodTidy` so users only need to enable one option.

Supporting changes:

- Extract `getMatchingFiles` and `resolveRelativePathToRoot` into
  `lib/util/fs/util.ts` so NuGet and gomod can share them instead of
  each having its own glob/resolve helper.
- Refactor `lib/modules/manager/nuget/package-tree.ts` to use the
  shared `getMatchingFiles` helper and rename local variables for
  clarity (`deps` → `visited`, `dep` → `dependent`) per review feedback.

Docs and config:

- Register `gomodTidyAll` in `postUpdateOptions` `allowedValues`.
- Add a row for `gomodTidyAll` to the `postUpdateOptions` table in
  `docs/usage/configuration-options.md`.
- Add a "Monorepo tidying for local `replace` directives" subsection
  to `docs/usage/golang.md` describing when to use the option.

Tests and coverage:

- `lib/modules/manager/gomod/package-tree.spec.ts` — parse/graph/topo
  order, 100% line/branch/function coverage.
- `lib/modules/manager/gomod/artifacts-gomodtidyall.spec.ts` — six
  integration cases covering subshell commands, `tidyOpts` propagation,
  result collection, no-op with no dependents, error handling, and
  the disabled path.
- Full `lib/modules/manager/gomod` suite (151 tests) and NuGet
  package-tree suite (9 tests) pass; new code is fully covered.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor(gomod): use named capture groups and direct fs util imports

* fix(gomod): use `go -C` for dependent module tidy commands

A subshell only works in Docker mode, where all commands are concatenated
into a single `bash -l -c`. With `binarySource=install` or `global` each
command is split with shlex and run without a shell, so `(cd dir && ...)`
is treated as the name of a binary.

* refactor(gomod): simplify parsing of local `replace` directives

A single regex now covers both the single line form and the lines inside
a `replace (...)` block. The previous block pattern stopped at the first
`)`, so a block containing a comment with a bracket was skipped, and the
single line pattern did not allow a trailing comment.

Also keeps the NuGet package tree unchanged apart from the two helpers it
now shares.

* docs(gomod): warn against combining `gomodTidyAll` with `gomodMassage`

Massaging comments out the relative `replace` directives that
`gomodTidyAll` follows, so the two options work against each other.

* refactor(fs): use `matchRegexOrGlob` in `getMatchingFiles`

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-13 08:35:38 +00:00
renovate[bot] f6acbb5b94 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.86.0 (main) (#45254)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.86.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.85.1 | 13.86.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.27.0
2026-08-12 23:33:28 +00:00
renovate[bot] 75c68d4b20 chore(deps): update dependency memfs to v4.68.0 (main) (#45253)
chore(deps): update dependency memfs to v4.68.0

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | memfs   | 4.67.0 | 4.68.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-12 23:33:27 +00:00
Lukas Backström 481f9b6d46 fix(github-actions): support ratchet comments for nested actions (#45210)
The `ratchet:` alternative in the pin-comment regex only allowed
`owner/repo`, so a ratchet marker for an action in a subdirectory
(`owner/repo/path@ref`) never matched. Such comments fell through to the
bare-token branch, which made `currentValue` the entire marker string,
e.g. `ratchet:actions/cache/restore@v4`. That is not version-like, so
the dep was switched to the `github-digest` datasource, which cannot
resolve the marker as a tag or branch and logs "Could not determine new
digest for update". The dep then gets no updates at all.

Allow further path segments after `owner/repo` so that nested actions
are extracted the same way as their top-level counterparts, with
`currentValue: v4` and the `github-tags` datasource.

Assisted-by: Claude:claude-opus-5
44.26.3
2026-08-12 22:15:52 +00:00
Sergei Zharinov 7c3a3eff21 fix(manager/terraform): stream-based H1 hashing (#45220)
* fix(manager/terraform): stream provider H1 hashing

* docs(manager/terraform): explain provider H1 semantics

* docs(manager/terraform): clarify provider H1 semantics
2026-08-12 22:09:45 +00:00
RahulGautamSingh d53ffc5633 test(bun): mock util/fs instead of fs-extra in artifacts spec (#45235) 2026-08-12 22:07:40 +00:00
RahulGautamSingh d678372061 fix(platform/azure): skip work item Markdown format on Azure DevOps Server (#45237) 44.26.2 2026-08-12 14:04:20 +00:00
Michael Kriese 6d4a5d38a0 ci(workflows): switch select workflows to ubuntu-slim runner (#45247)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 14:02:07 +00:00
renovate[bot] 851d6b6cc5 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.85.1 (main) (#45246)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.85.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.85.0 | 13.85.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.26.1
2026-08-12 13:03:51 +00:00
Michael Kriese 7c0592b540 chore(tools): allow unsafe askpass in agent hooks git config (#45245)
VS Code sets `GIT_ASKPASS`, which simple-git rejects as unsafe unless
`allowUnsafeAskPass` is enabled, breaking the agent hooks when run from
a VS Code terminal.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 13:00:59 +00:00
Michael Kriese b2da209f26 fix(manager/npm): do not pass --recursive to pnpm dedupe (#45244)
`pnpm dedupe` does not support the `--recursive` flag, so strip it from
the shared args when building the dedupe command.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 12:58:51 +00:00
renovate[bot] e2f223e688 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.85.0 (main) (#45240)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.85.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.84.3 | 13.85.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.26.0
2026-08-12 09:03:36 +00:00
Sebastian Poxhofer e01b50c6ab refactor(linter): oxlint prefer partial typed casts for consts (#45239)
* refactor: flag all typed object literal casts in prefer-partial-in-specs

* refactor: type maven spec httpError helper against got response shape
2026-08-12 08:50:57 +00:00
Lucas Colley 848ef4a88e feat: parse TOML files by default with TOML 1.1 (#45231)
feat: support TOML 1.1
44.25.0
2026-08-12 05:46:31 +00:00
renovate[bot] 5ecbdc9cd7 build(deps): update dependency semantic-release to v25.0.9 (main) (#45238)
build(deps): update dependency semantic-release to v25.0.9

| datasource | package          | from   | to     |
| ---------- | ---------------- | ------ | ------ |
| npm        | semantic-release | 25.0.8 | 25.0.9 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.24.4
2026-08-12 05:31:42 +00:00
Marcelo Estriga 3646307241 fix(manager/npm): pass correct arguments to pnpm dedupe (#42024)
* fix(manager/npm): pass correct arguments to pnpm dedupe

Run pnpm dedupe with the same options that pnpm install, to:
- suppress unecessary dependency download;
- respect Renovate allowScripts and ignoreScripts options.

* fix documentation table alignment

* Fix typo
2026-08-11 22:02:16 +00:00
renovate[bot] 923cc3ffca chore(deps): update dependency @containerbase/semantic-release-pnpm to v1.4.3 (main) (#45232)
chore(deps): update dependency @containerbase/semantic-release-pnpm to v1.4.3

| datasource | package                              | from  | to    |
| ---------- | ------------------------------------ | ----- | ----- |
| npm        | @containerbase/semantic-release-pnpm | 1.4.2 | 1.4.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.24.3
2026-08-11 20:44:25 +00:00
renovate[bot] 8a6d27d788 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.3 (main) (#45233)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.84.2 | 13.84.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-11 20:44:16 +00:00
Edward Klesel 2869cd3a8b fix(terraform): deduplicate provider lockfile hashes (#45226) 44.24.2 2026-08-11 16:01:22 +00:00
renovate[bot] e8568a2611 chore(deps): update dependency @biomejs/biome to v2.5.7 (main) (#45225)
chore(deps): update dependency @biomejs/biome to v2.5.7

| datasource | package        | from  | to    |
| ---------- | -------------- | ----- | ----- |
| npm        | @biomejs/biome | 2.5.6 | 2.5.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.24.1
2026-08-11 13:40:28 +00:00
renovate[bot] bbda04606c fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.2 (main) (#45223)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.84.1 | 13.84.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-11 13:33:41 +00:00
Jamie Tanna fba1a9de30 feat(manager/github-actions): add support for Actions Lockfiles (#45199)
* refactor(manager/github-actions): make `extractPackageFile` async

As part of follow-up changes we'll need to read `.github/workflows/actions.lock`
while extracting, which requires we are an async function.

To reduce the diff, we can prefactor this change first.

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

* feat(manager/github-actions): add support for Actions Lockfiles

In June, GitHub announced a public preview for the GitHub Actions
lockfile functionality[0].

To add support for this, we can extend our support for GitHub Actions to
handle the presence of an `actions.lock` file, and if so, update it
after updating other manager files.

Although our ideal case would be to have a pure Typescript-based parsing
and updating of the `actions.lock`, due to the early nature of the
Actions Lockfile syntax, and its lack of stability, we can invoke the
`gh actions-lock` extension when updating.

After the schema has reached a v1 release, we can then migrate to
Typescript.

To make sure that the version of the `actions-lock` extension is always
version pinned, we can expose a `constraints` to control the version,
but allow Renovate to keep the pinned default updated as needed.

This doesn't imply that we have support for `lockFileMaintenance`, as we
are only updating the lockfile when there is a dependency update, not
periodically recreating the lockfile from the current ranges.

`gh actions-lock` re-reads every workflow from disk and rewrites the
whole lockfile, so it does not fit `updateArtifacts`, which is called
once per updated package file.

We can instead follow the shape the `npm` manager uses for its
lock files, and have `processBranch` invoke this once per branch, after
every updated package file has been written to disk.

We skip workflows that aren't onboarded to the lockfile, but still run
for any other package file, as a local composite action can be a
transitive dependency of a workflow which is.

`gh actions-lock` rewrites the workflows it manages back to plain refs
when it regenerates them, which strips out any inline digest pin:

```diff
-        uses: actions/setup-java@1bcf9fb12c # v5.4.0
+        uses: actions/setup-java@v5.7.0
```

This would lead to a repository with `pinDigests` set "flip flopping",
and would cause a lot of erroneous noise for repository owners.

Instead, we can make sure that:

- we don't suggest a `pinDigest` for workflows that are managed by the
  lockfile
- digest pinning is still enabled for `docker://` references
- already-committed digests are updated when they're present - we only
  avoid suggesting /new/ digests to be pinned

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Claude Fable 5 <jamie.tanna+claude-code@mend.io>

[0]: https://github.com/github/actions-lockfile

* coverage

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

* fixup! feat(manager/github-actions): add support for Actions Lockfiles

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

---------

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
44.24.0
2026-08-11 11:55:06 +00:00
Birger Johan Nordølum 3823ef8742 docs: fix fenced blocks (#45206) 2026-08-11 10:29:08 +00:00
Jamie Tanna 15d541461b refactor(manager): add utility for creating Artifact Error messages (#45218)
* refactor(manager); add utility for creating Artifact Error messages

To prevent ignoring linting rules for nullish coalescing, as well as for
future changes that will use this helper, we can extract out a helper
function for this.

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

* fixup! refactor(manager); add utility for creating Artifact Error messages

---------

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-08-11 10:18:20 +00:00
renovate[bot] bfa0da839b chore(deps): update dependency memfs to v4.67.0 (main) (#45193)
chore(deps): update dependency memfs to v4.67.0

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | memfs   | 4.64.0 | 4.67.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-11 09:01:03 +00:00
Bartosz Dolewski d735b9b6b8 fix(swift): support Package Registry pins in Package.resolved (#44358)
* fix(swift): allow Package.resolved pins without a `revision`

The swift manager's Package.resolved Zod schema requires
`state.revision: z.string()` on every pin. That is correct for
source-control pins (`kind: "remoteSourceControl"`), which always
have a git commit SHA, but wrong for SwiftPM Package Registry pins
(`kind: "registry"`) introduced by SE-0292: registry packages are
identified by a version alone and have no revision. As a result,
any Package.resolved that mixes source-control and registry pins
fails `PackageResolvedJson.safeParse`, `updateArtifacts` logs
`swift: could not parse Package.resolved` and returns `null`, and
Renovate silently stops writing lockfile updates on that repository.

This makes `state.revision` optional in the pin schema. The existing
`updateArtifacts` logic already guards the revision-replacement
branch with `if (newRevision)`, so registry pins are still safely
left untouched during source-control dep bumps.

Adds a regression test with a mixed-pins fixture. Before this change
that test panicked at parse time; after the change it demonstrates
the source-control pin gets updated and the registry pin is preserved
without gaining a spurious revision field.

Refs: #41534 (initial Package.resolved support, tested with
source-control pins only), #42303 (from: prefix strip).

* test(manager/swift): address review feedback on mixed-pins test

Per review on the Package.resolved mixed source-control/registry pins
test: inline the fixture into the test body, trim the comment to a
concise regression note, and assert on the parsed JSON with
toMatchObject instead of substring matching.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

* test(manager/swift): assert full updateArtifacts result for mixed pins

Per review: replace the parse/find/toMatchObject assertions with a
single resolves.toEqual on the whole updateArtifacts result, comparing
against the expected Package.resolved output directly.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

* test(manager/swift): trim mixed-pins regression comment

Apply review suggestion to shorten the comment to a single line.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

---------

Co-authored-by: Claude (Cricut Security policy) <noreply@anthropic.com>
44.23.3
2026-08-11 06:26:37 +00:00
palakkhinvasara 728ce9752e fix: keep HTTPS when resolving same origin URLs (#45157)
* pushing

* pushing

* pushing

* pushing

* pushing
44.23.2
2026-08-11 06:14:50 +00:00
renovate[bot] f4f7ea1d73 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.1 (main) (#45209)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.84.0 | 13.84.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.23.1
2026-08-11 05:27:46 +00:00
user_9090 65ee1f18b4 feat: add regex support for gitIgnoredAuthors configuration (#43938)
* feat: add regex support for gitIgnoredAuthors configuration

* feat: add tests for gitIgnoredAuthors regex handling in isBranchModified

* refactor: simplify ignored authors matching in isBranchModified function

* refactor: use for-of loop for ignored author filtering

* fix(git): treat non-regex gitIgnoredAuthors as exact strings

* fix(git): remove duplicate import of matchRegexOrGlobList

* fix(git): reorder import statements for consistency

* feat(git): enhance gitIgnoredAuthors handling with regex validation and logging

* feat(git): enhance gitIgnoredAuthors support for glob patterns and improve regex handling

* fix(git): add support for escaped glob patterns in matchRegexOrGlobList

* feat(git): update gitIgnoredAuthors documentation and improve regex handling for glob patterns

* fix(git): improve escaping of brackets and backslashes in glob pattern handling

* feat(git): normalize GitHub bot email addresses in ignored authors handling

* feat(tests): add custom author with brackets to file list in index.spec.ts

* feat(git): refactor ignored author handling to support regex normalization

* feat(git): enhance ignored authors handling to support regex patterns

* chore: retrigger ci
44.23.0
2026-08-10 21:41:40 +00:00
Beto Aveiga a84e007f46 feat(vulnerabilities): match OSV Packagist sub-ecosystems (#45203)
Allow osvVulnerabilityAlerts to match OSV sub-ecosystems such as
Packagist:https://packages.drupal.org/8, based on #40004. Adds a
negative test so unrelated prefixes like PackagistSomething do not match.

Co-authored-by: Stephan Zeidler <stephan@ramsalt.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
44.22.0
2026-08-10 16:28:55 +00:00
Johannes Obermair b9b2755685 feat(replacements): add replacements for dev-facing Comet packages (#45112)
* feat(replacements): add replacements for dev-facing Comet packages

* fix: add current version matcher to rules

* fix: change dev-process-manager current version to >=3.0.0
44.21.0
2026-08-10 16:25:37 +00:00
renovate[bot] 3f20dca6e0 chore(deps): update dependency pnpm to v11.20.0 (main) (#45201)
chore(deps): update dependency pnpm to v11.20.0

| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| npm        | pnpm    | 11.19.0 | 11.20.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.20.1
2026-08-10 14:34:19 +00:00
Sebastian Poxhofer 4adc8f3725 fix(cargo): support fetching crates from git monorepo (#45142) 2026-08-10 14:30:10 +00:00
Jamie Tanna 7f40d43179 refactor(workers/repository): allow managers to opt out of digest pinning (#45198)
As part of future changes in #45190, we have found that when using
GitHub Actions' dependency lockfile, the digest pinning is manged by the
lockfile, rather than being specified in the package file itself.

To avoid a "flip flop" where using the manager removes the digest from
the package file (relying on the lockfile itself) and then a `pinDigest`
update re-adds it to the package file, we can instead follow how
`digestOneAndOnly` works and add a means to note
`digestManagedExternally`.

This isn't currently used, but allows an opt out for github-actions in
the future.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
44.20.0
2026-08-10 13:56:23 +00:00
renovate[bot] d584cf45d9 docs: update references to renovate/renovate (main) (#45196)
docs: update references to renovate/renovate

| datasource | package           | from    | to      |
| ---------- | ----------------- | ------- | ------- |
| docker     | renovate/renovate | 44.17.1 | 44.18.0 |
| docker     | renovate/renovate | 44.17   | 44.18   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 13:55:25 +00:00
Jamie Tanna 45372476c8 feat(util/exec): add support for gh tool (#45192)
* feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.83.0 | 13.84.0 |

* feat(util/exec): add support for `gh` tool

As a prerequisite for #44753 and #45190, we need to support the `gh`
CLI.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 13:55:09 +00:00
renovate[bot] 197ad00289 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0 (main) (#45197)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.83.0 | 13.84.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.19.0
2026-08-10 13:19:59 +00:00
renovate[bot] 63f9e20779 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.83.0 (main) (#45195)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.83.0

| datasource | package                        | from     | to      |
| ---------- | ------------------------------ | -------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.11 | 13.83.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
44.18.0
2026-08-10 12:06:59 +00:00
renovate[bot] 7275fcb632 chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.14.0 (main) (#45194)
chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.14.0

| datasource | package                            | from     | to      |
| ---------- | ---------------------------------- | -------- | ------- |
| docker     | ghcr.io/containerbase/devcontainer | 14.13.20 | 14.14.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 12:06:25 +00:00
Sergei Zharinov cca6227dfa fix(git): resolve child env before adding authentication (#45184)
* fix(git): preserve approved runtime config with authentication

* test(git): remove redundant authentication cases

* test(git): update post-upgrade environment assertions

* test(hermit): cover uninstall setup failure

* refactor(git): clarify authentication host types

* refactor(git): coerce exec options

* refactor(git): coerce docker env vars

* refactor(exec): coerce docker env vars
44.17.5
2026-08-10 11:54:18 +00:00
Sebastian Poxhofer 1f6546b7a9 fix(versioning/cargo): convert ranges to semver in subset and intersects (#45146)
`cargo2npm` exists because a bare `1.2.3` in Cargo means `^1.2.3` and
`0.4` means `^0.4`, since caret requirements are the default. Every
range-consuming function in this module converts through it: `isValid`,
`matches`, `isLessThanRange`, `getSatisfyingVersion`,
`minSatisfyingVersion` and `getNewValue`.

`subset` and `intersects` did not. The exported `api` is built from a
`...npm` spread and never overrode them, so they received Cargo syntax
and interpreted it as semver syntax. Read that way, `1.70` means
`1.70.x` rather than `^1.70`:

    subset('1.70', '1.63')      was false, is now true
    intersects('1.70', '1.63')  was false, is now true
    intersects('1.63', '1.70')  was false, is now true

`subset` is called by `applyConstraintsFiltering`, so repositories using
`constraintsFiltering: 'strict'` had crate releases dropped whenever the
release constraint differed from the configured one. `intersects` has no
caller in this repository today, but it is part of `VersioningApi` and
was wrong in the same way.

Both are now wrapped the way `composer` does it, including the
`try`/`catch`, because the underlying semver calls throw on ranges they
cannot parse.

The module had no tests for either function, which is why this was not
caught. Both are now covered, including the throwing path.
44.17.4
2026-08-10 11:03:19 +00:00
Sebastian Poxhofer a2d1b8cf0a fix(manager/asdf,mise,proto): use rust-version datasource for rust (#45143)
The `rust` tool was resolved via the `github-tags` datasource on
`rust-lang/rust` with the default (semver) versioning. That meant the
release channel values rustup actually accepts were not understood.

Switch all three managers to the `rust-version` datasource, which
declares `rust-release-channel` as its `defaultVersioning`, matching the
`rust-toolchain` manager and `lib/util/exec/containerbase.ts`.

`packageName` becomes `rust` rather than the `rust-lang/rust` owner/repo
slug, which is meaningless for this datasource. It is set rather than
omitted because mise would otherwise fall back to the backend-prefixed
depName, yielding `core:rust` / `asdf:rust` as the package name.

No explicit `versioning` is set: the datasource default already applies,
and the convention in these files is to set `versioning` only to
override a datasource default.

Behaviour change: `nightly-<date>` pins were previously skipped as
`invalid-value` and now update. `stable`, `beta` and `nightly` are now
recognised as ranges rather than flagged invalid, but still only resolve
to a concrete version under `rangeStrategy: pin`.
44.17.3
2026-08-10 07:54:37 +00:00
Sebastian Poxhofer 183ee9caac fix(manager/rust-toolchain): report skipReason instead of dropping deps (#45144)
The manager emitted `logger.warn` four times during extraction and
returned `null` for content that is valid but not updatable. A
`rust-toolchain.toml` using `path` instead of `channel` is a legitimate
file, yet it failed schema validation and produced a maintainer-facing
warning.

Per the logging guidance in `docs/development/best-practices.md`, WARN
is consumed by metrics and error catching services, so it should not
fire for user content Renovate simply cannot update. The manager guide
also asks for a `skipReason` rather than silently dropping a dependency.

The schema now accepts an optional `channel` and an optional `path`, and
extraction reports:

- `invalid-version` when a channel cannot be parsed
- `path-dependency` when the file points at a local toolchain
- `unspecified-version` when neither field is set

`channel` takes precedence when both are present, since rustup rejects
that combination and `channel` is the actionable field.

Files that are not toolchain files at all still return `null`: TOML that
does not parse, TOML without a `[toolchain]` table, and legacy plain
text files that are empty or hold more than one line. The file pattern
matches any file named `rust-toolchain`, so these are treated as false
matches. All remaining logs are DEBUG.
2026-08-10 07:52:31 +00:00