2246 Commits

Author SHA1 Message Date
Morre 41820f7301 docs: point to logLevelRemap for minimumReleaseAgeBehaviour=timestamp-optional warnings (#45498)
* docs: point to logLevelRemap for minimumReleaseAgeBehaviour=timestamp-optional warnings

* Update docs/usage/key-concepts/minimum-release-age.md

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

* Update docs/usage/key-concepts/minimum-release-age.md

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

* Update docs/usage/key-concepts/minimum-release-age.md

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

* improve wording

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2026-08-27 10:01:49 +00:00
Joseph Petersen 93afa9fc42 fix(github): respect automergeStrategy with platform automerge (#44563)
* fix(github): respect automerge strategy with platform automerge

* docs(automerge): clarify GitHub platform strategy

* docs(automerge): generalize platform strategy behavior
2026-08-26 15:17:13 +00:00
Jamie Tanna 5b1749983c feat: always set CI=true for subprocesses
As noted in #43761, we had recently set `CI=true` for the Renovate and
Containerbase orgs on Mend-hosted apps due to a pnpm v11 requirement:

    ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY  Aborted removal of
      modules directory due to no TTY

    If you are running pnpm in CI, set the CI environment variable to
      "true", or set "confirmModulesPurge" to "false".

Similarly in #43606, it was noted that we should do this for `mise lock`
to mark the workspace as "trusted".

Although we went with a different situation, there will be cases where
this is useful for tools being executed, for instance when we invoke `yarn`.

We also make sure to keep our documentation up-to-date as we add to the
specific overrides.

With help from Claude Sonnet and Opus to:

- perform some of the mechanical updates as part of this change
- ensure that the Docker sidecar always has `hardcodedProcessEnv` passed
  into it
- catch a needed change to `exposeAllEnv` handling

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-24 17:21:24 +01:00
Sebastian Poxhofer 9d0e535934 feat(config): add overrideDescription option (#45400)
* feat(config): add `overrideDescription` option

Presets which extend many other presets used an `ignoreDeps: []` sentinel
to keep their own one-line summary in the onboarding PR instead of one line
per extended preset. Replace that hack with an explicit `overrideDescription`
option, which is consumed and removed while presets are resolved.

The resolved descriptions are unchanged. Repositories which set
`ignoreDeps: []` in their own config no longer lose all preset descriptions
in their onboarding PR.

* fixup! feat(config): add `overrideDescription` option

* fixup! feat(config): add `overrideDescription` option

* fixup! feat(config): add `overrideDescription` option
2026-08-24 11:22:31 +00:00
renovate[bot] 7aafba7380 docs: update references to renovatebot/github-action to v46.2.3 (main) (#45412)
docs: update references to renovatebot/github-action to v46.2.3

| datasource  | package                   | from    | to      |
| ----------- | ------------------------- | ------- | ------- |
| github-tags | renovatebot/github-action | v46.2.2 | v46.2.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-24 02:31:14 +00:00
renovate[bot] e162f919a7 docs: update references to renovate/renovate (main) (#45411)
docs: update references to renovate/renovate

| datasource | package           | from    | to      |
| ---------- | ----------------- | ------- | ------- |
| docker     | renovate/renovate | 44.18.0 | 44.39.3 |
| docker     | renovate/renovate | 44.18   | 44.39   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-24 01:35:20 +00:00
renovate[bot] 385ab969a5 docs: update references to prom/prometheus to v3.14.0 (main) (#45410)
docs: update references to prom/prometheus to v3.14.0

| datasource | package         | from    | to      |
| ---------- | --------------- | ------- | ------- |
| docker     | prom/prometheus | v3.13.2 | v3.14.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-24 01:31:27 +00:00
renovate[bot] 823dd62eb6 docs: update references to otel/opentelemetry-collector-contrib to v0.159.0 (main) (#45408)
docs: update references to otel/opentelemetry-collector-contrib to v0.159.0

| datasource | package                              | from    | to      |
| ---------- | ------------------------------------ | ------- | ------- |
| docker     | otel/opentelemetry-collector-contrib | 0.158.0 | 0.159.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-24 00:30:14 +00:00
Luigi Cerone dd72cf0cd2 feat(manager/poetry): pass POETRY_SOLVER_MIN_RELEASE_AGE when minimumReleaseAge is configured (#43429)
* feat(manager/poetry): pass POETRY_SOLVER_MIN_RELEASE_AGE when minimumReleaseAge is configured

* test(manager/poetry): add coverage for invalid minimumReleaseAge duration

* refactor(poetry): remove pyproject.toml solver logic

* style: apply prettier formatting

* fix(poetry): address review comments

* fix: review changes

* fix: review changes

* Update lib/modules/manager/poetry/artifacts.ts

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>

* fix: linting

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-08-19 09:39:52 +00:00
Jamie Tanna 5af2a1955e docs: update information about renovate-pretty-log (#45327)
* docs: update information about `renovate-pretty-log`

As I've made some changes recently to make it more useful, and visually
explaining it is better for this page.

* docs: don't try and cache Asciinema assets

As it leaks to flakiness in CI, and it's OK to resolve these.
2026-08-18 12:03:40 +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
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
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
Birger Johan Nordølum 3823ef8742 docs: fix fenced blocks (#45206) 2026-08-11 10:29:08 +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
2026-08-10 21:41:40 +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
renovate[bot] 8964a664b7 docs: update references to renovatebot/github-action to v46.2.2 (main) (#45185)
docs: update references to renovatebot/github-action to v46.2.2

| datasource  | package                   | from    | to      |
| ----------- | ------------------------- | ------- | ------- |
| github-tags | renovatebot/github-action | v46.2.1 | v46.2.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 02:27:25 +00:00
renovate[bot] 742b3b3213 docs: update references to renovate/renovate (main) (#45182)
docs: update references to renovate/renovate

| datasource | package           | from   | to      |
| ---------- | ----------------- | ------ | ------- |
| docker     | renovate/renovate | 44.7.2 | 44.17.1 |
| docker     | renovate/renovate | 44.7   | 44.17   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 01:27:55 +00:00
renovate[bot] 3952363a57 docs: update references to otel/opentelemetry-collector-contrib to v0.158.0 (main) (#45180)
docs: update references to otel/opentelemetry-collector-contrib to v0.158.0

| datasource | package                              | from    | to      |
| ---------- | ------------------------------------ | ------- | ------- |
| docker     | otel/opentelemetry-collector-contrib | 0.157.0 | 0.158.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 00:27:27 +00:00
Dennis Schridde 0dac257b65 docs: Do not recommend to use prCreation=not-pending with automerge (#45088)
Do not recommend to use prCreation=not-pending with automerge

This recommendation contradicts https://github.com/renovatebot/renovate/blob/ce414fb3b02d3d91ff046ea101c8d168bd0d7403/docs/usage/key-concepts/minimum-release-age.md?plain=1#L122
2026-08-07 12:57:06 +00:00
Jamie Tanna 78fa7af1d1 docs: add link to Containerbase' "new tool" documentation (#45127) 2026-08-07 12:20:08 +00:00
Jamie Tanna 8108714fc3 docs: validate JSONC and Javascript code blocks (#45063)
* docs: correct `onboardingConfig` example

As we'll be enforcing this as valid Global config in future commits.

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

* docs: correct `module.exports` syntax

As we'll be enforcing this as valid Global config in future commits.

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

* docs: completely skip `doc-fence-check` on code blocks only used for synatx highlighting

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

* docs: skip schema validation on non-config snippets

As we'll be enforcing this as valid Global config in future commits.

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

* chore(tools/doc-fence-check): validate JSONC and Javascript code blocks

To further ensure that our documentation is well-formed, we can validate
that JSONC and Javascript code blocks are well-formed syntactically, and
are valid Renovate configuration.

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

* chore(tools/doc-fence-check): allow opting out of syntax validation

On top of schema validation wanting to be disabled, we should also
support disabling the syntax validation, in the case that we're using
`json` code blocks for syntax highlighting, but they're not necessarily
well-formed JSON.

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

* docs: use `json` syntax highlighting

As `jsonc` doesn't seem to exist in Material for MkDocs.

As it's only for syntax highlighting, we need to opt out of validation.

* tsc

---------

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-04 13:18:08 +00:00
Jamie Tanna 190f8d54ae docs(config): clarify how to use repositories (#45061)
As it's not super clear from the existing docs how it can be used.

Also, the example we previously had wasn't valid Javascript.
2026-08-04 11:58:58 +00:00
Jamie Tanna 7d2335ed07 fix(datasource/nuget): don't follow Link headers with different hosts
To prevent potential SSRF attempts, we can ignore a
misconfigured/malicious `next` link, and log a warning.

Co-authored-by: Claude Opus 4.8 <jamie.tanna+claude-code@mend.io>
2026-08-04 08:56:59 +01:00
Jamie Tanna 8a9f9cd9fe fix(datasource/docker): don't follow Link headers with different hosts
To prevent potential SSRF attempts, we can ignore a
misconfigured/malicious `next` link, and log a warning.

For self-hosted users, we can provide an experimental override if they
need to opt back in.

Co-authored-by: Claude Opus 4.8 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-04 08:54:23 +01:00
renovate[bot] c4fe59478a docs: update references to renovate/renovate (main) (#45018)
docs: update references to renovate/renovate

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| docker     | renovate/renovate | 44.0.1 | 44.7.2 |
| docker     | renovate/renovate | 44.0   | 44.7   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 07:21:40 +00:00
Jamie Tanna 8af53eb629 fix(presets): add missing updateTypes to exclusions in security:minimumReleaseAge* (#44990)
As these have been out-of-sync with what is and is not currently
supported per our documentation.

Co-authored-by: Claude Opus 4.8 <jamie.tanna+claude-code@mend.io>
2026-08-03 07:19:35 +00:00
renovate[bot] 2817236767 docs: update references to renovatebot/github-action to v46.2.1 (main) (#45020)
docs: update references to renovatebot/github-action to v46.2.1

| datasource  | package                   | from    | to      |
| ----------- | ------------------------- | ------- | ------- |
| github-tags | renovatebot/github-action | v46.2.0 | v46.2.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 02:31:36 +00:00
renovate[bot] a5ac833ce4 docs: update references to renovatebot/github-action to v46.2.0 (main) (#45019)
docs: update references to renovatebot/github-action to v46.2.0

| datasource  | package                   | from     | to      |
| ----------- | ------------------------- | -------- | ------- |
| github-tags | renovatebot/github-action | v46.1.21 | v46.2.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 01:34:33 +00:00
renovate[bot] 9fbe473bb0 docs: update references to prom/prometheus to v3.13.2 (main) (#45017)
docs: update references to prom/prometheus to v3.13.2

| datasource | package         | from    | to      |
| ---------- | --------------- | ------- | ------- |
| docker     | prom/prometheus | v3.13.1 | v3.13.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-03 00:29:11 +00:00
Jamie Tanna 33f51391f0 fix(workers/repository): apply minimumReleaseAge to pinDigest updates (#44968)
As per #44820, `pinDigest` updates currently don't get
`minimumReleaseAge` checks applied to them.

We can extend the recent support for `digest`s being handled by also
introducing support for `pinDigest`s to receive `minimumReleaseAge`
enforcement.

This will:

- enforce `minimumReleaseAge` on all updates that `pinDigest`s has
  pending
- consider the newest resolved version's timestamp, ignoring
  `rangeStrategy`-related logic
- allow unversioned releases like `latest` to /not/ be bound by
  `minimumReleaseAge`, as they'll potentially not have a release
  timestamp and will be unpinned forever, which is less safe (and
  reduces reproducibility)

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-07-30 16:00:12 +00:00
Jamie Tanna 1247df7fc4 fix(workers/repository): apply minimumReleaseAge to digest updates (#44965)
In some cases, we hadn't correctly wired in the `minimumReleaseAge`
checks for `digest`, due to the `currentValue` not changing.

To handle this, we need to:

- use our helper methods for calculating whether the `minimumReleaseAge`
  has passed
- handle a new digest's new `releaseTimestamp`
  the current timestamp
- intentionally not gate `minimumConfidence`, as this is only computed
  per-release, not at the digest level
- note the fixed behaviour, and clarify when it will/will not work
- add coverage for all generated updates for `digest`s, including when
  remapping a Go Modules update as a `digest`
- clarify that `filterInternalChecks` and
  `applyMinimumReleaseAgeToDigestUpdate` should stay in sync

Co-authored-by: Claude Fable 5 <jamie.tanna+claude-code@mend.io>
2026-07-30 12:06:25 +00:00
Jamie Tanna 10da664674 chore(config): be explicit about Renovate CLI in prFooter (#44949)
* chore(config): be explicit about `Renovate CLI` in `prFooter`

This was something I should have done in
72968d3726.

* fixup! chore(config): be explicit about `Renovate CLI` in `prFooter`
2026-07-30 12:00:37 +00:00
renovate[bot] ba0182f89f chore(deps): update renovate/renovate docker tag to v44 (main) (#44942)
chore(deps): update renovate/renovate docker tag to v44

| datasource | package           | from     | to     |
| ---------- | ----------------- | -------- | ------ |
| docker     | renovate/renovate | 43.281.1 | 44.0.1 |
| docker     | renovate/renovate | 43.281   | 44.0   |
| docker     | renovate/renovate | 43       | 44     |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-29 14:39:46 +00:00
Niels Pardon c3c70b8cdb feat(managers/pep621): update pixi.lock if present (#44004)
* feat(managers/pep621): update pixi.lock if present

* test(managers/pep621): cover pixi requires-pixi from workspace table

* refactor(manager/pixi): extract shared pixi.lock update helper

* test(manager/pep621): use arrange-act-assert spacing in pixi tests

* refactor(manager/pixi): revert shared pixi.lock helper extraction

Move the extraction of the shared pixi.lock update helper into a
follow-up PR, as requested in review. The pep621 pixi processor and the
pixi manager again carry their own lock-update logic.

This reverts commit 743db204f2.

* feat(manager/pep621): gate pixi.lock updates behind allowedUnsafeExecutions

`pixi lock` can execute arbitrary code from conda package hooks, so the
pep621 manager now only updates `pixi.lock` when `pixi` is included in the
global `allowedUnsafeExecutions` option, following the same pattern as the
`mise` manager. When `pixi` is not allowed, PEP 621 dependencies in
`pyproject.toml` are still updated but `pixi.lock` is left unchanged.

https://pixi.prefix.dev/latest/security/#4-treat-package-hooks-as-code-execution

* feat(manager/pixi)!: gate pixi.lock updates behind allowedUnsafeExecutions

The pixi manager runs `pixi lock`, which can execute arbitrary code from
conda package hooks. Like the pep621 manager, it now only updates
`pixi.lock` when `pixi` is included in the global `allowedUnsafeExecutions`
option. When it is not allowed, the package file is still updated but
`pixi.lock` is left unchanged.

https://pixi.prefix.dev/latest/security/#4-treat-package-hooks-as-code-execution

BREAKING CHANGE: The `pixi` manager no longer updates `pixi.lock`
automatically. To keep `pixi.lock` updated, add `pixi` to the global
`allowedUnsafeExecutions` option.
2026-07-29 10:31:15 +00:00
Niels Pardon f60995a404 feat(manager/pixi): gate pixi.lock updates behind allowedUnsafeExecutions (#44939)
feat(manager/pixi): gate pixi.lock updates behind allowedUnsafeExecutions

The pixi manager runs `pixi lock`, which can execute arbitrary code from
conda package hooks. It now only updates `pixi.lock` when `pixi` is
included in the global `allowedUnsafeExecutions` option, following the same
pattern as the `mise` manager. When `pixi` is not allowed, the package file
is still updated but `pixi.lock` is left unchanged.

https://pixi.prefix.dev/latest/security/#4-treat-package-hooks-as-code-execution
2026-07-29 09:18:02 +00:00
Felipe Santos ddbbb687f9 feat: add commitTrailers option (#44651)
* feat(config): add commitTrailers option

Renovate's only way to add git trailers today is `commitBody`, but it's
broken on Gerrit: Renovate appends its own `Renovate-Branch`/`Change-Id`
block after the body, so user trailers end up in a non-final message
block and are not real trailers per git-interpret-trailers rules.

This adds a `commitTrailers: string[]` option (each entry a full
`Key: value` line), standardizes Gerrit's own trailers through the same
mechanism so user trailers and platform trailers merge into one final
block, and verifies the result at runtime with `git interpret-trailers`
(commitlint's trailer-exists rule uses the same approach). The
`:gitSignOff` preset is migrated from `commitBody` to `commitTrailers`
so sign-off works correctly on Gerrit too.

* Simplify a bit

* Simplify docs even more

* Simplify another bit

* Add comment about rawExec

* Drop runtime commit trailer verification

Bypass simple-git only to emit a proactive warn log is not worth the
extra surface area. Config validation already enforces Key: value form.

* test(git): cover string commit message with trailers

Codecov patch failed on the partial ternary branch that normalizes a
string message before appending trailers.

* test(gerrit): fix trailers test after scm rework

Align the commitTrailers merge test with the post-rework Gerrit SCM:
use fakeSha helpers and drop the removed force flag.

* Improve wording on gitSignOff docs

* Validate compiled commitTrailers as well

* Improve trailers example

* Use isString instead

* Update lib/util/git/index.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Update lib/workers/repository/onboarding/branch/create.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Format code

* Fix type-check

* Fix tests

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-07-27 06:49:09 +00:00
renovate[bot] 5c7f980ea6 docs: update references to renovatebot/github-action to v46.1.21 (main) (#44870)
docs: update references to renovatebot/github-action to v46.1.21

| datasource  | package                   | from     | to       |
| ----------- | ------------------------- | -------- | -------- |
| github-tags | renovatebot/github-action | v46.1.20 | v46.1.21 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 03:30:25 +00:00
renovate[bot] 1cae2cc16d docs: update references to otel/opentelemetry-collector-contrib to v0.157.0 (main) (#44865)
docs: update references to otel/opentelemetry-collector-contrib to v0.157.0

| datasource | package                              | from    | to      |
| ---------- | ------------------------------------ | ------- | ------- |
| docker     | otel/opentelemetry-collector-contrib | 0.156.0 | 0.157.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 01:32:20 +00:00
renovate[bot] 011c0b4890 docs: update references to renovate/renovate (main) (#44866)
docs: update references to renovate/renovate

| datasource | package           | from     | to       |
| ---------- | ----------------- | -------- | -------- |
| docker     | renovate/renovate | 43.272.0 | 43.281.1 |
| docker     | renovate/renovate | 43.272   | 43.281   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 01:29:19 +00:00
renovate[bot] 20a51f8734 docs: update references to jaegertracing/jaeger to v2.20.0 (main) (#44864)
docs: update references to jaegertracing/jaeger to v2.20.0

| datasource | package              | from   | to     |
| ---------- | -------------------- | ------ | ------ |
| docker     | jaegertracing/jaeger | 2.19.0 | 2.20.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 00:27:54 +00:00
Jamie Tanna 52fc54782c docs(minimum-release-age): correctly reference lockfileUpdate (#44823)
As it's lowercase.
2026-07-24 10:30:38 +00:00
Jamie Tanna f7bf437dcf docs(minimum-release-age): indicate which Datasources support releaseTimestamp (#44822)
As noted in #30714, and to make the Minimum Release Age page a
"one-stop-shop", we can generate the documentation accordingly.

Using an orange "maybe" for support helps nudge folks to checking which
registry they're using, and noting that it still doesn't necessarily
work, even if the Datasource supports it.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-07-24 10:02:37 +00:00
Jamie Tanna 6e15862584 docs(minimum-release-age): link to separate issue for pinDigest (#44821) 2026-07-24 09:50:35 +00:00
RahulGautamSingh e0714e0d23 feat(azure): make issue work item type configurable (#44736)
* feat(azure): make issue work item type configurable

* move azureWorkItemType to Config

* fix type

* add docs url using productLinks

* apply suggestions

* Update lib/modules/platform/azure/issue.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* fix ci + doc addition

* fix docs lint

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-07-24 09:19:11 +00:00
Jamie Tanna 996dfbb49a docs(mend-hosted): correctly note "Community (OSS)" vCPUs (#44798) 2026-07-23 13:40:06 +00:00
Jamie Tanna adbc20e88e feat(instrumentation): allow exporting OTLP JSON file (#42284)
* feat(instrumentation): allow exporting OTLP JSON file

We've recently been investing in improvements to Renovate's
OpenTelemetry instrumentation to improve debuggability and
supportability.

However, not everyone has an immediately available OpenTelemetry
Collector, so the added instrumentation isn't useful to those users.

Instead, we can provide a way to export to the OTLP file format, which
provides a means to export the data to disk and then consume it later.

This will also support use-cases like running in a CI platform like
GitHub Actions and GitLab CI, where OpenTelemetry Collectors may not be
exposed in that environment, but a post-run execution can export it.

We now need to make sure that `RENOVATE_USE_CLOUD_METADATA_SERVICES` is
never set, as `isTracingEnabled` will now resolve true, and the Cloud
Metadata Resource Detectors will be used.

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

* fixup! feat(instrumentation): allow exporting OTLP JSON file

* fixup! fixup! feat(instrumentation): allow exporting OTLP JSON file

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

* fixup! feat(instrumentation): allow exporting OTLP JSON file

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-07-22 12:26:16 +00:00
Stephen Breakey 2f9735f249 feat(gitlab): add gitlab codeowners role support (#44621)
* feat(gitlab): add gitlab codeowners role support

* chore: use named group in roleRegex

* Update lib/config/options/index.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Update lib/modules/platform/gitlab/roles.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* chore: rename getMembers to getGroupMembers

* chore: refactor getRoleMemberUsernames

* chore: adjust test chaining

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-07-22 08:36:15 +00:00
Aryan Barsaiya b0bc33c8b7 docs: fix outdated statement that Docker major updates are disabled by default (#44524) 2026-07-20 10:30:19 +00:00
renovate[bot] c898019773 docs: update references to renovatebot/github-action to v46.1.20 (main) (#44721)
docs: update references to renovatebot/github-action to v46.1.20

| datasource  | package                   | from     | to       |
| ----------- | ------------------------- | -------- | -------- |
| github-tags | renovatebot/github-action | v46.1.19 | v46.1.20 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-20 03:33:46 +00:00