Commit Graph

3488 Commits

Author SHA1 Message Date
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 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
Jamie Tanna 6fb038bb59 chore(azure): simplify calculation for getMergeMethod (#42849)
* chore(azure): simplify calculation for `getMergeMethod`

Instead of the complicated check we were previously performing which:

- recovered from errors if `policyConfigurations` wasn't undefined, or
  other errors occurred
- trimmed the field names and checked if they were one of the
  `GitPullRequestMergeStrategy` options

We can instead rewrite this with stronger types and compile time checks
to confirm that the mapping from a policy configuration matches the
different `GitPullRequestMergeStrategy`s.

This provides a clearer intent for what this code is doing.

This changes behaviour slightly - previously, the first JSON key defined
that was a `GitPullRequestMergeStrategy` would be used (which is JSON
implementation specific), whereas now it is a defined order.

We also add coverage for the new behaviour.

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

* fixup! chore(azure): simplify calculation for `getMergeMethod`

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-24 06:18:01 +00:00
Jamie Tanna b81a6add44 chore(azure): log the resolved MergeMethod for a given branch (#42847)
To aid with debugging, it would be useful to confirm what the resulting
method is, in both paths.

With help from GPT-4.1 to craft the enum-to-string conversion.

Co-authored-by: gpt-4.1 <jamie.tanna+github-copilot@mend.io>
2026-04-23 15:02:09 +00:00
Jamie Tanna 72968d3726 chore: clarify "Mend Renovate" in PRs (#42841)
As part of general work to reinforce the brand link between Mend and
Renovate, we can improve the default PR body footer to clarify this.

This feeds into #29885 and general naming, where we want to keep these
close, while also not being too "in your face".

This is still user-controlled, but provides a more reasonable default.

This also feeds into #26838 and #39305, where we should also remove the
"Bot" from the footer.
2026-04-23 11:33:36 +00:00
Michael Kriese 21b15d5796 refactor(github-actions): simplify comunity action schema (#42784)
* refactor(github-actions): simplify comunity action schema

* refactor: rename function
2026-04-23 11:18:37 +00:00
Jamie Tanna b81bf5dade fix(versioning/github-actions): don't parse allowedVersion-style ranges as a range (#42831)
* fix(versioning/github-actions): don't parse `allowedVersion`-style ranges as a range

As noted in #42824, when using a range for `allowedVersion`, changes to
how ranges are parsed with `semver.coerce` led to incorrectly matching
this as a version that would like to be updated to.

We can guard this by making sure a SemVer style version number is used.

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

* perf(versioning/github-actions): create constants for regexes

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

* test: skip coverage

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

* fixup

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-23 09:37:08 +00:00
David Lane eb22aa0bbb fix(homebrew): allow subdirectories for Homebrew Formulas (#42542)
* fix(homebrew): allow subdirectories for Homebrew Formulas

* fix(homebrew): only allow up to 1 subdirectory

* fix(homebrew): double escape w (word character)

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

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-04-22 15:38:46 +00:00
Jamie Tanna 498a50fd0d fix(versioning/github-actions): treat floating tags as equal (#42809)
* fix(versioning/github-actions): treat floating tags as equal

As noted in #42662, if a floating tag `@v2` is used, Renovate currently
tries to roll it back to `@v1`, as it doesn't see that `@v2 === @v2`.

* fix(versioning/github-actions): allow `v` prefix matching too
2026-04-22 09:33:24 +00:00
Jamie Tanna 192c11ef17 chore(types): add a stronger type for ReleaseResult.tags (#42812)
As part of making it clearer that the `latest` key is a special case.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-22 09:31:02 +00:00
spmiller 777b884a38 feat(gerrit): Add gitUrl support (#42672)
* feat: Gerrit supports gitUrl

This change adds support for the gitUrl parameter to the gerrit platform.

It queries the gerrit server to check what download options are available. If ssh is selected but not available, it will throw an error.

* feat: Gerrit supports gitUrl

This removes support for querying the supported download schemes and
instead hard-codes the default ssh port.

* fix: Review feedback

Addresses feedback left in review:
- constants for ports
- better SSH url creation
- more consistent util method usage

* fix: Review feedback

Addresses feedback left in review:
- Reverts SSH URL creation to ensure coverage target

* fix: Review feedback

Addresses feedback left in review:
- Convert switch statement to if/else
- Move endpointURL check into getGerritResponse

This makes the parse/clone calls unnecessary.

* fix: Review feedback

Addresses feedback left in review:
- Simplify ssh url creation
2026-04-21 21:36:37 +00:00
Maxime Brunet b41b31e79d test(datasource/pypi): tighten typing with partial helper (#42790) 2026-04-21 13:55:08 +00:00
Jamie Tanna c5a87efec8 chore(types): add missing ConstraintName enforcement (#42745)
* chore(types): correct JSDoc

* chore(types): add missing `ConstraintName` enforcement

* fixup! chore(types): add missing `ConstraintName` enforcement

By simplifying this case, which should never happen, as the types
wouldn't allow it.

* chore: reorder for typechecking simplicity

* fixup! chore(types): add missing `ConstraintName` enforcement
2026-04-21 11:50:34 +00:00
Jamie Tanna 57d5fb3142 feat(manager/github-actions): use github-actions versioning by default (#42713)
As a re-attempt for #42331, and to support the migration for Actions
publishing Immutable Releases.
2026-04-21 11:45:52 +00:00
Jamie Tanna 413d94178d fix(versioning/github-actions): correctly handle major.minor and major (#42769)
* fix(versioning/github-actions): correctly handle `major.minor` and `major`

As part of the final set of changes needed to support Immutable Releases
with GitHub Actions and the `github-actions` versioning, we need to
modify how our versioning works to handle correctly surfacing the
shortest version available.

To make this more resilient, and help us test-drive the change, we'll
also add an integration test that:

- extracts from a GitHub Actions workflow
- performs a lookup (with mocked data)
- determines the available updates that would be proposed

This provides more confidence in the change itself, as well as
validates the intended changes.

This also moves `prefix` and `minLevel` to a single definition.

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

* fixup! fix(versioning/github-actions): correctly handle `major.minor` and `major`

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

* fixup! fix(versioning/github-actions): correctly handle `major.minor` and `major`

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-21 11:29:43 +00:00
Michael Kriese 70895fa838 feat(github-actions): add aquasecurity trivy actions (#42782) 2026-04-21 09:11:59 +00:00
Jamie Tanna 0c21df1e22 perf(workers/repository): use a Set for allReleaseVersions (#42779)
So all lookups downstream can be performed in `O(1)` time.

Suggested by Claude Sonnet.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-21 08:55:41 +00:00
Michael Kriese a277aadf88 refactor(github-actions): simplify community action schema (#42778)
* refactor(github-actions): simplify comunity action schema

* refactor rename function

* refactor: rename and remove default versionings
2026-04-21 08:32:54 +00:00
Maxime Brunet 459db80b94 fix(datasource/pypi): sanitize GAR userinfo for authenticated lookups (#42541)
* fix(datasource/pypi): sanitize GAR userinfo for authenticated lookups

Strip URL userinfo from Google Artifact Registry PyPI lookup URLs only when
Google auth is being applied. This avoids got-derived Basic auth conflicts for
uv-style index URLs while keeping the change narrowly scoped to authenticated
datasource requests.

* Test getAuthHeaders with invalid URL

* Parse the URL once

* Remove cast and ignore error

* Remove test and add v8 ignore comment

---------

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-21 06:19:56 +00:00
renovate[bot] a561b74314 chore(deps): update dependency @biomejs/biome to v2.4.11 (main) (#42034)
* chore(deps): update dependency @biomejs/biome to v2.4.11

| datasource | package        | from  | to     |
| ---------- | -------------- | ----- | ------ |
| npm        | @biomejs/biome | 2.4.6 | 2.4.11 |

* fixup linter changes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2026-04-20 21:45:46 +00:00
Sebastian Poxhofer f484b8f882 feat(mise): add pnpm and yarn tools (#42764)
* feat(mise): add pnpm and yarn tools

* chore use NPM datasource

* use "standard" cli package
2026-04-20 17:13:02 +00:00
Jeff Brown 945acf6c38 feat(nuget): update lock files when Directory.Build.props is changed (#42735)
fix(nuget): update lock files when Directory.Build.props is changed

Directory.Build.props is a standard MSBuild import file that can contain
PackageReference elements. When Renovate updates packages in this file,
lock file regeneration was skipped because updateArtifacts only handled
.csproj/.vbproj/.fsproj, Directory.Packages.props/Packages.props, and
global.json.

This extends the existing logic to treat Directory.Build.props the same
way as central management files — all project files under its parent
directory are restored to regenerate their lock files.

Also renames the isCentralManagement parameter to isPropsFile for
clarity, since it now covers both central management and
Directory.Build.props files.

Relates to #15696, #8010
2026-04-20 15:48:19 +00:00
Johannes Feichtner 4dbfc7a53c feat(manager/gradle): add support for implicit version catalog accessor syntax (#42746)
* feat(manager/gradle): add support for implicit version catalog accessor syntax

* fix coverage in else branches
2026-04-20 12:58:25 +00:00
Jamie Tanna 95a7cab7f3 fix(versioning/github-actions): allow v1 to be treated as a version (#42762)
* fix(versioning/github-actions): allow `v1` to be treated as a version

As a similar change to 2ab41fa709, we also
need to allow a major-only version to be treated as a valid version.

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

* chore: remove accidental JSDoc

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-04-20 10:21:18 +00:00
Jamie Tanna 673fb8e7a9 fix(versioning/github-actions): allow v1.2 to be treated as a version (#42761)
When using `docker` versioning, we correctly treat a `v1.2` -> `v1.3`
version update as valid.

However, when using the previous implementation of `github-actions`'
versioning, we would silently ignore them, filtering them in
`filterValidVersions`.

This leads to cases where a `v1.2` would be upgraded to `v1.3.0`, which
wasn't correct.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-20 09:21:32 +00:00
renovate[bot] 6473c4006d docs: update references to python to 63fdc2b (main) (#42748)
docs: update references to python to 63fdc2b

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-20 00:27:20 +00:00
Trim21 9510d133df feat(github-actions): add support for jakebailey/pyright-action version option (#42744) 2026-04-19 14:08:15 +00:00
Johannes Feichtner e70fb64e94 feat(manager/pixi): set currentVersion field for exact pypi dependency versions (#42741) 2026-04-19 10:51:56 +00:00
Philipp Grathwohl a6238a476b feat(manager/cake): Take nuget.config into account for registryUrls of nuget packages (#41545)
* Take nuget.config into account for registryUrls of nuget packages

* Remove 'afterEach' in tests

* Fix PR remarks

* Remove 'any' as suggested in code review

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

* Update lib/modules/manager/cake/index.ts

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

* Verify mock parameters in cake manager tests

---------

Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-04-19 08:18:42 +00:00
Jamie Tanna d508716886 feat(versioning): add a github-actions versioning (#42712)
GitHub Actions' versioning somewhat mirrors the SemVer-style versioning,
but doesn't quite.

This is in the case that it's common to use (mutable) tags like `v7` or
`v4.2`, as well as full SemVer style` `v1.2.3` and `v1.3.4-rc2`, doesn't
quite match it.

In addition, with GitHub's recent move to introduce Immutable Tags,
these require new releases to be a full SemVer `major.minor.patch` tag.

However, we don't currently have a way to take users from `@v7` to
`@v8.1.1`, in the case they're using Immutable Tags.

Given this isn't currently straightforward with any of our existing
SemVer-y versioning modules like `semver-coerced` or `semver-partial`,
we should instead introduce a specific Versioning module.

This mostly covers the functionality that `semver-partial` has, but
needs to take advantage of the `allVersions` parameter to find the
"shortest" possible tag for a given resolved Semantic Version.

This was previously attempted in previous changes, but reverted in
db64cc6de0 due to additional complexity.

We won't turn it on by default right now, but as a future change.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-04-17 19:07:45 +00:00
Michael Kriese 06cf949974 fix(datasource/npm): catch invalid engines (#42718) 2026-04-17 17:38:49 +00:00
Johannes Feichtner be2eacd8d2 feat(vulnerability): improve GitHub advisory PR body notes with summary, GHSA ID and references (#42670)
feat(vulnerability): improve GitHub advisory PR body notes with summary and GHSA ID
2026-04-17 15:33:56 +00:00
Jamie Tanna 171d17734a chore(versioning): allow providing known versions to module (#42719)
As part of future changes, we'll introduce a new Versioning module for
GitHub Actions, which requires knowing if the version it's proposing
actually exists.

This is a more useful concept for Versioning modules to be able to take
advantage of, so we can expose this as an optional capability that
Versioning modules can use.
2026-04-17 15:00:06 +00:00
Jamie Tanna db64cc6de0 fix(manager/github-actions): revert recent changes (#42707)
* Revert "fix(manager/github-actions): override `versioning` for Actions with Immutable Tags (#42690)"

This reverts commit 1b0785bbe0.

* Revert "feat(replacements): migrate users to astral/setup-uv v8 (#42683)"

This reverts commit f5859c2671.

* Revert "feat(manager/github-actions): use `semver-partial` as default versioning (#42685)"

This reverts commit da04b8edac.
2026-04-17 07:10:18 +00:00
Jamie Tanna 1b0785bbe0 fix(manager/github-actions): override versioning for Actions with Immutable Tags (#42690)
The changes in da04b8edac mostly worked,
but given `astral-sh/setup-uv` is now using Immutable Tags it _must_ be
resolved as `versioning=semver`, to make sure that version updates are
correctly raised.

However, we can't treat it as `versioning=semver`, as that will then
fail to parse the current version correctly.

Instead, we must use a `regex` versioning scheme, which allows us to
optionally parse the minor and patch versions.

This allows `newVersion` to be pinned accordingly to SemVer, but does
not require previous versions to be so.

We can do this - for now - with an explicit allowlist.
2026-04-16 16:59:10 +00:00
Michael Kriese f6d41067b4 fix(docker): only set replaceString if requested (#42649) 2026-04-16 13:17:08 +00:00
Jamie Tanna da04b8edac feat(manager/github-actions): use semver-partial as default versioning (#42685)
As per #42331, we should migrate to using `semver-partial` for GitHub
Actions' tags versions, instead of `docker`.

This mirrors actual usage of the way that the ecosystem tags Action
versions, and also has the benefit of automagically migrating users of
Actions that have enabled Immutable Tags, which now must be a full
SemVer tagged version.

As we're now specifying the `versioning: semver-partial`, we don't need
to specify it in `pinGitHubActionDigestsToSemver`.
2026-04-16 10:59:58 +00:00
Stefan Ceriu 0ff55d2d34 feat: add XcodeGen manager for Swift package dependencies in project.yml files (#41889)
* feat: add XcodeGen manager for Swift package dependencies in project.yml files

* chore(xcodegen): inline project.yml fixture

* fix(xcodegen): use semver instead of swift versioning

* fix(xcodegen): use glob syntax for manager file pattern

* tests(xcodegen): expect logger is called on invalid packages

* tests(xcodegen): better assert extracted package contents

* chore(xcodegen): simplify regex usage

* chore(xcodegen): log projects without dependencies

* chore(xcodegen): simplify dependency resolving and remove regular expressions in favor of the `detectPlatform` helper function

* chore(xcodegen): use `coerceString` on package versions to simplify testing and improve coverage

* chore(xcodegen): address PR review comments.

---------

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-15 15:13:04 +00:00
Arnaud Dezandee 914c55b03c refactor(terraform-module): replace interfaces with zod schemas and inline fixtures (#42399)
* refactor(terraform-module): extract getRegistryRepository to utils

* refactor(terraform-module): add zod schemas and validate service discovery

* refactor(terraform-module): use zod schemas in query methods and inline fixtures

* fix(terraform): update hash test to use valid service discovery response

* refactor(terraform-module): address review feedback

* style: biome lint fix

* refactor(terraform-module): address review feedback
2026-04-15 13:41:28 +00:00
RahulGautamSingh 28ab04b43d feat(manager/ant): support custom registryUrls (#42641)
* feat(manager/ant): add registry URL discovery from settingsFile and remoteRepository

Read Maven registry URLs from settingsFile attribute on dependency
blocks (parsed via Maven's extractRegistries) and from inline
<remoteRepository url="..." /> elements. Registries are merged,
deduplicated, and scoped to their dependency block.

* update java docs

* fix coverage

* apply suggestions

* fix ci issues
2026-04-15 12:54:02 +00:00
Arnaud Dezandee f421075a5e feat(terraform-provider): use registry v2 API for release timestamps (#42340)
* feat(terraform-provider): add zod schemas for v2 API response

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

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

* feat(terraform-provider): address review feedback

* style: fix oxlint
2026-04-15 09:44:39 +00:00
RahulGautamSingh 15c8ab5385 feat(manager/ant): add coords= attribute syntax support (#42635)
* feat(manager/ant): add coords= attribute syntax support

Support Maven coords attribute format (group:artifact:version and
group:artifact:version:scope) as an alternative to separate
groupId/artifactId/version attributes.

* add trace logs

* fix coverage
2026-04-15 09:23:47 +00:00
Johannes Feichtner 1e906e8e33 feat(vulnerability): add severity and CVSS details to GitHub Dependabot alerts (#42568) 2026-04-14 18:05:08 +00:00
Mike Ryan f635ae29c4 chore(instrumentation): add timing statistics for getReleases (#42523)
* feat: timing statistics for getReleases

Adds collection and reporting of timing statistics for
`datasource.getReleases()` calls. Each call records the datasource, registryUrl,
packageName, and duration. The intent is to visibility into where
renovate is retrieving release information and how long that might take.

The report consists of a nested data-structure that provides increasing
detail as we descend datasource, registryUrl, and packageName.

The full report  is logged at trace level
`getReleases statistics with packages`.

A summary report including only datasources and registryUrls is logged
at debug level `getReleases statistics summary`.

* add GetReleasesSpanProcessor

- Re-instrument getReleases calls using open telemetry.
- Adds GetReleasesSpanProcessor, which can adapt
  `getReleases` spans to GetReleasesStats.

* fixup instrumentation tests

* pr feedback

* pr feedback: naming

* pr feedback: comments
2026-04-14 17:36:37 +00:00
RahulGautamSingh 76dcc66816 feat(manager/ant): add <import> file traversal (#42631)
Support <import file="..."/> elements in Ant build files to follow
cross-file dependencies. Properties defined before the import are
available in the imported file. Cycle detection via visited-file
tracking prevents infinite loops.
2026-04-14 17:04:59 +00:00
RahulGautamSingh ef8e6c874b feat(manager/ant): add property resolution and .properties file support (#42175)
* new changes

* use updateDependency

* fix coverage

* apply suggestions

* apply suggestions

* add comment

* Update lib/modules/manager/ant/update.ts

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

* apply suggestions zharinov

* fix coverage

* fix coverage

* escape attrName

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2026-04-14 15:04:34 +00:00
Adam Setch 53bd79641c feat(bitbucket-pipelines): update file patterns to support shared configs (#41704)
* feat(bitbucket-pipelines):update file patterns to support shared configs

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* feat(bitbucket-pipelines):update file patterns to support shared configs

Signed-off-by: Adam Setch <adam.setch@outlook.com>

* feat(bitbucket-pipelines):update file patterns to support shared configs

Signed-off-by: Adam Setch <adam.setch@outlook.com>

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-04-14 14:26:46 +00:00
Michael Miller 203c5fec0b feat(manager/mise): add support for openfga (#42611)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:14:09 +00:00