Commit Graph

14403 Commits

Author SHA1 Message Date
Jamie Tanna dfe0938b42 feat(datasource/go): conditionally expose constraints (#42569)
* feat(datasource/go): conditionally expose `constraints`

As noted in #42567, some Go modules are constrained by their
compatibility with the source compatibility with the Go language as per
the `go` directive.

Bumping the `go` directive will result in all of a library's consumers
also needing to bump their own `go`, which can be something library
authors will attempt to avoid.

Previously, Renovate users would receive an update from any modules that
have a new release, regardless of whether they will bump the `go`
directive.

With this change, users who use `constraintsFiltering=strict` will have
the filtering applied, so they only receive updates for Go modules in
their current minor version.

Due to the additional API calls needed, this is an opt-in feature, and
only includes the API calls when the using
`constraintsFiltering=strict`.

We can also add an integration test to build our confidence in the
end-to-end flow.

* fix(datasource/go): correctly check Go directive for major version bumps

As we weren't passing around the `pkg` (which included the Semantic
Module Import Path), we were incorrectly lacking major version upgrades.

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

* chore: remove `fallback`

As it's unnecessary.

* docs(gomod): rephrase

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-29 14:48:53 +00:00
Hajime-san 0004fcf69b feat(managers): add Deno manager support (#37828)
* works

* fix ci

Base branch is: main
Base branch ref for this PR is: c3a9360ecd
❌ Error: Snapshots have been added in this PR. Use toMatch instead.

* fix ci

Base branch is: main
Base branch ref for this PR is: c3a9360ecd
✅ Snapshot code check passed.
Added files in '__fixtures__':
lib/modules/manager/deno/__fixtures__/.gitignore
lib/modules/manager/deno/__fixtures__/npm-compat-workspace/deno.lock
lib/modules/manager/deno/__fixtures__/npm-compat-workspace/package.json
lib/modules/manager/deno/__fixtures__/npm-compat-workspace/sub/package.json
lib/modules/manager/deno/__fixtures__/workspace-01/deno.json
lib/modules/manager/deno/__fixtures__/workspace-01/deno.lock
lib/modules/manager/deno/__fixtures__/workspace-01/docs/deno.json
lib/modules/manager/deno/__fixtures__/workspace-01/docs/deno.lock
lib/modules/manager/deno/__fixtures__/workspace-01/packages/pkg1/deno.jsonc
lib/modules/manager/deno/__fixtures__/workspace-01/packages/pkg1/deno.lock
lib/modules/manager/deno/__fixtures__/workspace-02/deno.json
lib/modules/manager/deno/__fixtures__/workspace-02/deno.lock
lib/modules/manager/deno/__fixtures__/workspace-02/docs/deno.json
lib/modules/manager/deno/__fixtures__/workspace-02/import_map.json
lib/modules/manager/deno/__fixtures__/workspace-03/deno.json
lib/modules/manager/deno/__fixtures__/workspace-03/deno.lock
lib/modules/manager/deno/__fixtures__/workspace-03/node/package.json
Total number of added files in '__fixtures__': 17
Deleted files in '__fixtures__':

Total number of deleted files in '__fixtures__': 0

Updated total number of added files in '__fixtures__': 17
Updated total number of deleted files in '__fixtures__': 0
❌ Error: More files have been added to '__fixtures__' directories than deleted.
Error: Process completed with exit code 1.

* nit fix

* fix import map

* remove unnecessary mock

* nested workspace is invalid

* cleanup to postExtract

* revert JSR datasource files

* move to schema

* move

* cleanup lock

* importMapReferrer

* cleanup artifact test

* comment

* remove support deno-cli detailed behaviour due to complexity

* cleanup

* fix schema

* cleanup

* schema for updateDependency

* nit

* lint

* update doc

* tmp-promise

* no need filter deno

* returns an error

* remove delete lockfile

* store the importMapReferrer result

* constraints

* use parseJson

* remove processDenoCompatiblePackageJson

* move to types.ts

* Update lib/modules/manager/deno/post.ts

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* Revert "Update lib/modules/manager/deno/post.ts"

This reverts commit 64bd57649c.

* Revert "remove delete lockfile"

This reverts commit e701333519.

* Reapply "remove delete lockfile"

This reverts commit 89c3d79a43.

* remove comment

* bump ci

* fix eslint

* Apply suggestion from @RahulGautamSingh

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* Update lib/modules/manager/deno/compat.spec.ts

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* Update lib/modules/manager/deno/post.ts

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* Update lib/modules/manager/deno/compat.spec.ts

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>

* prettier

* Revert "Reapply "remove delete lockfile""

This reverts commit 85af6a506e.

* falling back for lockFileMaintenance

* mock statically

* use mockExecAll

* avoid cloning

* avoid cloning

* add `.ts` extension

* fix versioning

* fix `.ts` extension

* c8

* c8 update

* c8 post

* c8 extract

* c8 versiong

* c8 schema

* c8 compat

* revert deno versioning

* pnpm lint-fix

* lockFileNames

* zod/v3

* comment

* Apply suggestions from code review

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

* Apply suggestions from code review

review batch lib/modules/manager/deno/compat.ts

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

* fix import

* fix

* Apply suggestions from code review

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

* isObject

* Apply suggestions from code review

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

* named import @sindresorhus/is

* Apply suggestions from code review

* review

* rm test

* Apply suggestions from code review

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

* Redundant radix parameter.

* review

* review

* c8 lib/modules/manager/deno/update.ts

* fix

* named import

* clean up

* rm unnecessary

* named import

* Missing radix parameter.

* better

* move to beforeAll

* `lockFile` to `fileName`

https://github.com/renovatebot/renovate/pull/41631

* `lockFile` to `fileName`

https://github.com/renovatebot/renovate/pull/41631

* Update lib/modules/manager/deno/schema.ts

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

* update containerbase

* oxlint

* refactor for

https://github.com/renovatebot/renovate/pull/42253

* Apply suggestions from code review

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

* use `Record`

* use type `Upgrade`

* update README.md

---------

Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-29 14:36:41 +00:00
Arnaud Dezandee 00812db4c1 feat(terraform-module): add OpenTofu registry API support (#42972) 2026-04-29 14:31:04 +00:00
Jamie Tanna 0e5e384237 feat(manager/gomod): extract the go and toolchain directives as constraints (#42582)
As part of future changes in #42567 to surface the `constraints` of a
given Go module, we should first extract the constraints from the
package file.

To make this simpler for users, we can make sure we extract these at
parse time:

- the `toolchain` directive becomes the `golang` constraint, which
  matches the `golang` tool name already in use for Containerbase
- the `go` directive becomes a new `%goMod` constraint, which keeps it
  separate from the version of the Go toolchain actually used to run, as
  well as clearly not for the Go tooling, or something that
  Containerbase knows about
- we make sure to extract it with a SemVer range that can then be used
  to ensure that, in future changes, using `constraintsFiltering=strict`
  will allow filtering releases from the Go datasource based on this
  constraint.
- because we're now returning the `constraintsVersioning`, we need to
  make sure this is part of our types
2026-04-29 13:20:13 +00:00
Jamie Tanna e37388d91f feat: allow separate versioning for constraints (#42966)
* feat: allow separate versioning for constraints

As noted in #31831, there are times where it can be useful to override
the version that a given datasource uses, when performing
`constraintsFiltering=strict.`

This should only be applicable to the "additional" constraints, so we
make sure to validate this.

As this is new functionality, any misconfiguration should be marked as
an error.

We can make sure to provide a real-world usecase for this (taking
inspiration from `rails`' versioning of the `rubygems` constraint).

This will be used in the future by the extraction of the `go` directive,
which requires a different versioning to the default `semver`.

* fixup! feat: allow separate versioning for constraints

* fixup! feat: allow separate versioning for constraints

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

* extra-log-context

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-29 13:00:15 +00:00
renovate[bot] dc80f1ab58 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.41.1 (main) (#42981)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.41.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.41.0 | 13.41.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-29 11:09:21 +00:00
Norman 4e1553583c feat(terraform): add OCI protocol support for modules and providers (#38934)
* feat(terraform): add OCI protocol support for modules and providers

Adds support for Terraform modules and providers hosted in OCI-compatible
container registries using the `oci://` protocol.

Delegates OCI sources to Docker datasource for version resolution.
Supports both version in separate field and embedded in URL.

Closes https://github.com/renovatebot/renovate/discussions/38927

* refactor(terraform): address code review feedback for OCI support

cd - Move ociRefMatchRegex to shared location in base.ts
cd - Extract OCI parsing into parseOciRef function to reduce duplication
cd - Remove unnecessary registryUrls assignments
cd - Add skipReason when OCI tag is unspecified
cd - Inline oci.tf fixture to avoid triggering vulnerability scanners
cd - Refactor OCI regex tests to use it.each

* refactor(terraform): address PR review, round 2

- Replace custom ociRefMatchRegex/parseOciRef with getDep pattern,
reusing isOCIRegistry/removeOCIPrefix from helmv3/oci.ts
- Remove docs/development/oci-terraform-support.md
- Remove ociRefMatchRegex/parseOciRef from base.ts and modules.ts
- Simplify OCI test in extract.spec.ts
- Remove ociRefMatchRegex describe block from modules.spec.ts

* refactor(terraform): address PR review, round 3

extract duplicate function

Signed-off-by: Norman Stetter <85173861+norman-zon@users.noreply.github.com>

* fix: only allow valid oci urls

oci sources only support query params for versioning

* feat: pass through registryaliases

* fix: fix broken tests

* fix: address PR review round 4

* fix: replace new URL with parseUrl

Signed-off-by: Norman Stetter <85173861+norman-zon@users.noreply.github.com>

* fix: add tests for new path

Signed-off-by: Norman Stetter <85173861+norman-zon@users.noreply.github.com>

---------

Signed-off-by: Norman Stetter <85173861+norman-zon@users.noreply.github.com>
2026-04-29 10:57:45 +00:00
Jonas Kuske 0a9053b13c feat(poetry): enrich deps with managerData from poetry deps if both present (#39275)
* feat: use poetry deps to enrich equivalent pep621/pep735 deps

* test: cover project.optional-dependencies in enrichment test

* refactor: replace reduce usage with for..of loop

* refactor: use nullish-coalescing during variable assignment

* refactor: use coerceArray helper instead of nullish coalescing
2026-04-29 10:52:39 +00:00
renovate[bot] 1a93ca592b feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.41.0 (main) (#42973)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.41.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.40.2 | 13.41.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 16:31:37 +00:00
Arnaud Dezandee 5ab19552c1 feat(terraform-module): use registry v2 API for release timestamps (#42969) 2026-04-28 13:38:15 +00:00
renovate[bot] 85470c5ce5 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.2 (main) (#42970)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.40.1 | 13.40.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 13:30:31 +00:00
Jamie Tanna 53dcdba84d fix(validation): validate constraints (#42825)
* fix(validation): validate `constraints`

To provide better coverage for our users of what is a valid option for a
`constraints` value, we can validate the overall format of the
`constraints` block, as well as the given names of constraints.

Where we have a Tool defined, we can use the default versioning for that
Tool to validate the constraint's value.

For now, both the validation of the `constraints`' value, and the
validation of `constraints`' names will be a warning, but in the future
may be made an error.

* chore(validation): remove check for `compatibility`

As this was renamed in #7308. It's been long enough since then that we
can remove this check.

* chore(validation): add logger in `else` case

For coverage fix, and also to provide insight when this does happen

* fixup! chore(validation): add logger in `else` case

* fixup! chore(validation): add logger in `else` case

* key

* coverage

* Remove duplicate function

As it's been pulled in via another PR.

* fixup! docs(constraints): document the possible `constraints` and `installTools` (#42837)

As it can't be `undefined`.

* test: coverage

And more whitespace to make it clearer they're two separate `if` blocks.

* typo

* typo

---------

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-28 10:21:41 +00:00
Victor Sollerhed 4faae3e76d feat(manager/asdf): support apm (#42865) 2026-04-28 09:54:03 +00:00
Jamie Tanna 3049ef2244 chore(datasource): fix log messages (#42963) 2026-04-28 09:52:40 +00:00
Jamie Tanna 2bd478fff4 feat(mise): automagically support all tools through Mise Registry (#42783)
* feat(mise): automagically support all tools through Mise Registry

As noted in #42250, we should try and auto-support tools from Mise where
possible.

Similar to other areas of the codebase, we should use the "static data"
pattern, and periodically sync the `mise registry --json` output with
`lib/data/mise-registry.json`, and then auto-detect the tools that we
support through the known backends the tools support.

This takes lower precedence than existing in-code tool definitions, so
we can still provide an "override" if we can support lookups or version
extraction more appropriately.

Because we now have many more tools we (mostly) support out-of-the-box,
we need to provide an improved documentation page, and:

- only link to tools we have an explicit tools URL for
- note where a backend may not be supported

To automate the updating of this data, we:

- make sure we have `mise` in GitHub Actions, before we run
- don't pin the `mise` version to make sure that we're always seeing the
  latest supported tools
- make sure the commits generated are now `feat(...)`, as they introduce
  functionality changes (in the case new tool(s) are supported)

This improves support from ~170 tool short names to just over 1000.

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

* refactor: use Typescript

As we can now, we should.

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

* refactor(tools/static-data): use Zod schemas for parsing

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

* refactor(mise): use Zod for types

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

* chore(mise): prefer the GitHub backend over other sources

As we generally prefer it as a project, we should automagically use that
when looking at a mise registry entry.

With help from GPT-4.1 to write the `sortBackend` function.

Co-authored-by: gpt-4.1 <jamie.tanna+github-copilot@mend.io>

* test: ignore else coverage

* docs(mise): preference of `github` backend

* docs(mise): auto-link autogenerated tools

* perf(mise): sort registry only once

* refactor(mise): transform when parsing

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

* refactor: use `execa`

* perf(mise): read the Mise registry once

* perf(mise): pre-transform

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
Co-authored-by: gpt-4.1 <jamie.tanna+github-copilot@mend.io>
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-04-28 08:56:09 +00:00
Jamie Tanna bdddddf57a test: remove TODOs (#42958) 2026-04-28 08:31:26 +00:00
Felipe Santos 1bbe82400e fix(gerrit): defer change creation to createPr() (#39250)
* fix(gerrit): defer change creation to `createPr()`

Signed-off-by: Felipe Santos <felipe.santos@ericsson.com>

* Refactor hashtags handling

* Add prTitle to all missing commitAndPush()

* Fix gerrit tests

* Add warning when prTitle is set in updatePr

* Remove now useless labels from commitAndPush

* Fix gerrit client coverage

* Fix gerrit scm coverage

* Fix rebase coverage

* Improve TODO about assignees

* Fix formatting

* Fix review comment

* Extract to a pushForReview function

* Fix after #41382

* Fix onboarding

* Cleanup code

* Fix ESLint

* Fix tests

* Restore gitRetry for git.merge

* Fix tests

* Simplify hashtags code

* Delete pendingChangeBranch in pushForReview()

* Fix test name

* Remove unnecessary test comments

* Improve test name again

* Fix another test name

* Delete local branch in Gerrit SCM

* Add test for deleting pending branch

* Add tests for pushForReview()

* Fix test case name

* Improve another test name

* Fix another small test inconsistency

* Fix some code style issues

* Use isUndefined instead

* Fix one small test style issue

---------

Signed-off-by: Felipe Santos <felipe.santos@ericsson.com>
2026-04-28 08:29:26 +00:00
Jamie Tanna 1054439929 refactor(gomod): extract deriveGoToolchainConstraints function (#42956)
As part of future changes, we'll introduce additional constraints that
may take priority, so we should ensure we have coverage of the existing
logic.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-28 08:05:11 +00:00
toro_ponz d8b2759006 feat(presets/monorepos): add conform (#42903) 2026-04-28 08:03:13 +00:00
renovate[bot] e3c7cd84bc fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.1 (main) (#42957)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.40.0 | 13.40.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 07:57:04 +00:00
Rhuan Barreto e5f067ccce feat(manager): add proto manager for .prototools files (#42908)
* feat(manager): add proto manager for .prototools files

Add a new manager for moonrepo's proto tool version manager.
Proto uses .prototools (TOML) files to pin tool versions at the
directory level. The manager extracts top-level version entries
and maps them to the appropriate Renovate datasources.

Supported built-in tools: bun, deno, go, moon, node, npm, pnpm,
yarn, python, ruby, rust, proto, gh, poetry, uv.

Non-version sections ([settings], [plugins], [tools], [env],
[shell], [backends]) are correctly ignored. Version aliases
(latest, stable, canary, nightly) are skipped with appropriate
skipReason. Unknown tools are reported as unsupported-datasource.

* fix(manager): address proto manager PR review feedback

- Remove deduplicateArray/sort from supportedDatasources, sort manually
- Sort protoTooling entries alphabetically
- Inline createDependency call into deps.push()
- Inline fixture content into test, remove fixture file
2026-04-28 07:04:44 +00:00
Arnaud Dezandee 677e2a606e feat(terraform-provider): add OpenTofu registry API support (#42343)
* feat(terraform-provider): add zod schemas for v2 API response

* feat(terraform-provider): use registry v2 API for release timestamps

* feat(terraform-provider): add zod schema for OpenTofu API response

* feat(terraform-provider): add OpenTofu registry docs API support

* feat(terraform-provider): update v2 API response handling and schema validation

* feat(terraform-provider): use schema transform for OpenTofu response

* fix(terraform-provider): address PR review feedback for OpenTofu support

* fix(terraform-provider): resolve sourceUrl from OpenTofu version details

* fix(terraform-provider): derive OpenTofu sourceUrl from registry naming policy
2026-04-28 06:55:39 +00:00
renovate[bot] ab62bd5a2b feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.0 (main) (#42951)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.40.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.39.0 | 13.40.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 02:27:10 +00:00
renovate[bot] 0073e1f002 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.39.0 (main) (#42950)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.39.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.38.4 | 13.39.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 23:29:04 +00:00
Jamie Tanna 01a01f6b88 feat(manager/gomod): improve commitMessageTopic for go/toolchain directive bumps (#42891)
As noted in #42519, the preivous commit/PR title wasn't quite as clear
with what was actually changing.

To make this more explicit, we can override `commitMessageTopic`.
2026-04-27 16:30:52 +00:00
renovate[bot] 28e4144ed2 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.4 (main) (#42942)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.4

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.38.3 | 13.38.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 15:31:21 +00:00
Mike Ryan 525f80d6df fix(package-rules): respect each dep update's fetchChangeLogs value (#42671)
* fix(package-rules): respect each dep update's fetchChangeLogs value

Ensures that changelog fetching respects each dep update's specific `fetchChangeLogs` value.

Given the following renovate configuration: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/blob/fb9e070d0f9a4d6fc742c4a22edee2c9b055fece/.github/renovate.json5#L42-L61

My expectation is that Renovate would never fetch changelogs for `lodash`. However, when grouped
together with `chalk` and `tar` under `group of unrelated packages`, we find that
renovate fetches changelogs all packages, including `lodash`.

Before this change (`lodash` logs fetched):
- Run: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/actions/runs/24480887343/job/71544876893
- (wrong) lodash, tar, and chalk all have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/9

After this change, the PR created by renovate only contains changelogs for `chalk` and `tar`, but not `lodash`:

- Run: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/actions/runs/24481738609/job/71547632550
- (expected) lodash does not have changelogs, but tar and chalk have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/10

----

We can further explore the effectiveness of the change with a more elaborate configuration, where the top-level has `fetchChangeLogs: off`: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/blob/0ea69c18b9171e38c56440c762faa68109d3d0d5/.github/renovate.json5#L41-L95

Before the change:

- Run: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/actions/runs/24482213234/job/71549162174
- (wrong) lodash, tar, and chalk all have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/15
- (expected) typescript (inherited `off`) does not have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/17
- (expected) grunt (overridden `pr`) has changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/13

After the change::

- Run: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/actions/runs/24482561172/job/71550255278
- (expected) lodash does not have changelogs, but tar and chalk have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/22
- (expected) typescript (inherited `off`) does not have changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/24
- (expected) grunt (overridden `pr`) has changelogs: https://github.com/justfalter/renovate-test-packagerules-fetchchangelogs/pull/20

Portions of this PR previously appeared in #42368

* pre feedback: just use fetchChangeLogs from upgrade

* revert documentation.spec.ts changes

They've already been integrated with #42846
2026-04-27 15:28:15 +00:00
Felipe Santos 3afa38511b refactor(datasource/npm): extract defaultRegistryUrl constant (#42794)
* feat(datasource/npm): extract defaultRegistryUrl constant

* Fix some other places

* Remove useless defaultRegistryUrls export

* Fix another place

* Undo rules.spec.ts changes, which are not related

* Fix npm presets

* Restore line removed by mistake

* Fix another test file

* Restore changes to a file which is not relevant

* Fix another small place
2026-04-27 15:24:01 +00:00
Jamie Tanna 423aa9ff3f fix(datasource): handle both config and release constraints as a range (#42922)
* chore(datasource): add missing parentheses

* fix(datasource): handle both config and release constraints as a range

In the case that the user's config is a range, but the release itself
provides an exact value for the constraint, we currently do not
correctly filter it.
2026-04-27 14:24:02 +00:00
Michael Miller c1e12558b5 feat(manager/mise): add support for clang-format (#42912) 2026-04-27 14:09:05 +00:00
Jamie Tanna 502224479f test(datasource/jenkins-plugins): use correct versioning (#42923)
As it's the current default versioning for the datasource.
2026-04-27 13:27:33 +00:00
Jamie Tanna a8310d0be5 chore(datasource): add trace logging for applyConstraintsFiltering (#42929)
* chore(datasource): add trace logging for `applyConstraintsFiltering`

As a way to provide more additional information to users who are
debugging when `constraintsFiltering=strict`, we can add some TRACE
logs.

We can use the prefix `applyConstraintsFiltering` for all log lines, so
we can use `logLevelRemap` more easily.

* test(datasource): add coverage

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-27 12:38:42 +00:00
Jamie Tanna b4d22867de chore(pr): make truncation notice more prominent (#42823)
When we truncate the PR body (due to platform limits) we should be
clearer as to where this was trimmed.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-27 12:33:08 +00:00
Jamie Tanna 5042d74fac test(util): add coverage of new GitHub Installation Access Token format (#42928)
Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-27 12:33:07 +00:00
Robin Schneider e8614ed076 fix(manager/flux): extract both tag and digest for OCIRepository (#41882)
* fix(manager/flux): extract both tag and digest for OCIRepository

Signed-off-by: Robin Schneider <mail@robinschneider.dev>

* Use record instead of map

Signed-off-by: Robin Schneider <mail@robinschneider.dev>

* Avoid state duplication

Signed-off-by: Robin Schneider <mail@robinschneider.dev>

* Adjust regex

Signed-off-by: Robin Schneider <mail@robinschneider.dev>

* Adjust fallback

Signed-off-by: Robin Schneider <mail@robinschneider.dev>

* test(manager/flux): cover missing-header system manifest branch in extractAllPackageFiles

* fix(manager/flux): update both tag and digest for OCIRepository refs without regex

* test(manager/flux): cover extractOCIRefRange guard branches

* test(manager/flux): cover remaining extractOCIRefRange branches

---------

Signed-off-by: Robin Schneider <mail@robinschneider.dev>
2026-04-27 10:41:18 +00:00
renovate[bot] 57d9ad425a fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.3 (main) (#42927)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.38.2 | 13.38.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 10:32:54 +00:00
Jamie Tanna f07b09fd92 fix(github-actions): handle {major}.{minor}-{prerelease} version (#42926)
As noted in #42899, some Actions use a version such as `v2.2-rc.1` which
we weren't handling or updating.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-27 10:25:54 +00:00
Jamie Tanna f5f55210fc test(versioning/maven): increase test coverage (#42924)
* test(versioning/maven): increase test coverage

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

* test(versioning/maven): add examples for Jenkins-style version constraints

For future related changes, it would be good to have a test covering
exact syntax needed.

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-27 10:25:42 +00:00
Pierluigi Lenoci e11c22b033 feat(github-actions): extract Docker version from setup-docker-action (#42880)
Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>
2026-04-27 07:25:10 +00:00
RahulGautamSingh ff27ebee2b docs: use unicode arrow (→) instead of ASCII (->) (#42896)
* chore(docs): use unicode arrow (→) instead of ASCII (->)

* more changes
2026-04-27 07:11:16 +00:00
renovate[bot] e3bdee9853 docs: update references to python to 4bdca44 (main) (#42914)
docs: update references to python to 4bdca44

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 00:27:06 +00:00
Jamie Tanna 8278ce5370 docs(constraints): document the possible constraints and installTools (#42837)
* docs(constraints): list the possible `constraints` and `installTools`

Now we have a stronger type for what a valid tool constraint is, and
what additional constraints are, we should be very explicit with what
each option is, and specify them in the `constraints` as well as our
`installTools` docs.

* test: add coverage

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-26 16:13:09 +00:00
Jamie Tanna 41125296a0 docs(util/exec): add description field for ConstraintName/ToolName (#42907)
Instead of inline documentation with JSDoc, we can use an optional
`description` field that can be accessed programatically.

This means the `description` can also be added to our JSON Schema for a
Tool, or be the only output when a non-Tool constraint, as the
description for non-Tools are more clear than the autogenerated text.

We can make sure we continue to export the known names, as well as the
full definitions.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-26 14:44:05 +00:00
Sebastian Poxhofer d6834c5560 docs(shell-executor): move code comment to docs (#42898) 2026-04-26 07:25:05 +00:00
Jamie Tanna e0ede0677c fix(datasource/npm): catch invalid homepage (#42892)
In a similar fix to 06cf949974, this fixes
early versions of `https://registry.npmjs.org/fs-extra` returning an
array value for `homepage`, resulting in no caching for these responses.
2026-04-24 16:41:14 +00:00
Jamie Tanna 300035a700 chore(workers/repository): provide more detail when rolling back (#42818)
* chore(workers/repository): provide more detail when rolling back

To help debug the case where rollbacks are being initiated, we can:

- add slightly more information to the `Filtered out ...` log line
- add `prBodyNotes` to the resulting PR

This requires we expose the `prBodyNotes` field to `LookupUpdate`, and
the `packageName` and `datasource` to `RollbackConfig`, so we can log
them.

* chore(modules/datasource): log `datasource` and `packageName` when filtering

For more context when reviewing the logs.
2026-04-24 16:23:45 +00:00
renovate[bot] 9f460bf9fc fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.2 (main) (#42889)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.38.1 | 13.38.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-24 16:10:19 +00:00
Laurent Egbakou 9e889a0660 fix(data:monorepo): add dotnet org URL for aspnet-api-versioning monorepo (#42857)
* chore(monorepo): Update aspnet-api-versioning repository URL

* refactor(data:monorepo): group aspnet-api-versioning old and new source URL
2026-04-24 16:00:07 +00:00
renovate[bot] fd969eebc9 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.1 (main) (#42882)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.38.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.38.0 | 13.38.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-24 14:28:36 +00:00
RahulGautamSingh b875eef9d0 fix(changelog): skip link reference definitions in body matcher (#42868)
* fix(changelog): skip link reference definitions in body matcher

* remove extra comment
2026-04-24 09:30:52 +00:00