Commit Graph

2547 Commits

Author SHA1 Message Date
Jamie Tanna 41eba99ed9 test(workers/repository): cover generation of prettyDepType (#42152)
As part of changes in #42142, I noticed that we didn't have any coverage
of how this was determined.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-03-26 11:17:31 +00:00
Jamie Tanna f785fd2459 chore(workers/repository): add more information to lookup error warnings (#42120)
When a `lookupError` occurs, it's currently unclear as to why the lookup
error occurred.

It seems to be more common in the Go ecosystem where a lookup error
occurs, and Renovate autocloses PRs, only to recreate them in a
future run.

To provide more useful debugging information to users, we can add the
actual `lookupError` string itself.
2026-03-25 05:49:30 +00:00
Johannes Feichtner ae786755ab fix(repository/finalize): skip branch pruning when defaultBranch is unavailable (#42000) 2026-03-19 16:08:04 +00:00
Jamie Tanna b1d03bc8f3 chore(onboarding): add link to prHourlyLimit docs (#39445)
To make this more actionable.
2026-03-19 10:11:34 +00:00
Johannes Feichtner 292ef85dca fix(participants): filter out empty entries from code owners (#41576)
* fix(participants): filter out empty entries from code owners

* add defense in depth
2026-03-15 12:08:19 +00:00
Johannes Feichtner 18bcf81283 fix(repository/finalize): avoid pruning crash when base branches are not resolved yet (#41928) 2026-03-15 12:02:49 +00:00
Felipe Santos e8a5c70862 feat(config-migration): preserve comments when migrating renovate.json (#38646)
* feat(config-migration): preserve comments when migrating `renovate.json`

* Replace jsonc-parser with jsonc-weaver

* Switch to npm package

Refs https://github.com/felipecrs/jsonc-weaver/commit/7a168e2fdd6959fab9d1ebd6bb5dafc02dbf62ff

* Fix tests

* Add test coverage for fallback

* Fix coverage again

* Fix coverage for real

* Restore line break
2026-03-13 21:53:52 +00:00
Jamie Tanna 6061757b88 refactor(manager/npm): remove duplicate ArtifactError type (#41779) 2026-03-10 13:06:03 +00:00
Jamie Tanna 8b3dc2cb3c test(workers/repository): cover ignored coverage (#41781)
Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-03-10 12:57:53 +00:00
Jamie Tanna 2d1e57532f refactor(types): rename lockFile to fileName in ArtifactError (#41631)
As `fileName` makes more sense (as it's not always a lock file we're
updating).

Also, if you set `fileName`, it would never actually output the
filename.

This renames the usages of `lockFile` to `fileName`.

Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
2026-03-10 09:57:31 +00:00
RahulGautamSingh 2dc7d9c43f refactor: move onboardingCommitMessage to InheritConfig (#41380)
* refactor: move onbaordingCommitMessage to InheritConfig

* fix test

* fix sorting
2026-03-09 13:12:06 +00:00
Sergei Zharinov 41bfb8678e refactor(lint): use oxlint for type-aware rules (#41739)
* feat: enable oxlint type-aware linting

Move type-aware typescript-eslint rules from ESLint to oxlint,
leveraging oxlint-tsgolint for type information. This removes
the need for ESLint's projectService and parserOptions.

- Add `options.typeAware: true` to .oxlintrc.json with all
  type-aware rules (recommendedTypeChecked + stylisticTypeChecked)
- Switch ESLint to non-type-aware configs (recommended, stylistic)
- Remove projectService/parserOptions from ESLint config
- Drop @typescript-eslint/naming-convention (no oxlint equivalent)
- Update oxlint/eslint-plugin-oxlint to 1.51.0
- Add oxlint-tsgolint dependency
- Convert eslint-disable comments to oxlint-disable for type-aware rules
- Fix prefer-optional-chain violations newly caught by oxlint

* fix: revert unnecessary code changes, suppress with oxlint-disable instead

* fix: suppress remaining prefer-optional-chain violations

* fix: suppress last prefer-optional-chain violation

* fix: remove redundant --type-aware CLI flag, use config instead
2026-03-09 12:51:12 +00:00
Jamie Tanna 4f0d819316 fix(workers/repository): handle no depName but packageName (#41720)
As noted in #41716, there are cases where a `depName` may be absent, but
a `packageName` is present.

We should handle this accordingly, and check for the `packageName`, and
only error if neither of these are set.
2026-03-06 17:09:57 +00:00
Jamie Tanna 32b550cfa0 feat(workers/repository): raise artifact error if pending version used in an update (#41629)
* feat(workers/repository): raise artifact error if `pending` version used in an update

When using Minimum Release Age, and a package manager that doesn't
support being told an explicit version to update to (#41624) it is
possible that an artifact update leads to a different version of a
dependency being used compared to what Renovate is expecting.

This can lead to, at best, a surprising PR update, and at worst, a
supply chain attack.

We should report these cases more explicitly with an Artifact Error, to
allow the reviewers to decide what to do with the changes.

To do this, we need to re-extract package files after an update, and
determine if any of the version(s) of that dependency are using any of
the `pendingVersions`.

This may be slightly breaking to users, which is why this is a `feat`
not a `fix`, but isn't so breaking that it's worth leaving until the
next breaking change .

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

* fixup! feat(workers/repository): raise artifact error if `pending` version used in an update

* fixup! fixup! feat(workers/repository): raise artifact error if `pending` version used in an update

* Update lib/workers/repository/update/branch/get-updated.ts

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

---------

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+github-copilot@mend.io>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-03-04 17:03:56 +00:00
Jamie Tanna db13e7a430 chore: point Minimum Release Age status check to the full docs page (#41630)
Instead of the `minimumReleaseAge` configuration option.
2026-03-03 16:08:08 +00:00
Jamie Tanna e83acfb2ef feat(postUpgradeTasks): allow specifying installTools (#41594)
* feat(postUpgradeTasks): allow specifying `installTools`

As noted in #8111 and #41569, it is possible that when using
`binarySource=install`, you can execute a `postUpgradeTasks`' given
command without Renovate having the right tools installed, dependent on
the Manager used for the update.

To make it possible for users to indicate that they explicitly need
given tools (at a given `constraint`), we can introduce a new
`installTools` option which will allow specifying which tools +
constraints to use when invoking the `postUpgradeTasks`'s command.

Right now, we're not defining what the `installTools'` interior type is,
but leaving it open to extension.

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

* docs: add examples for `toolVersions`

---------

Co-authored-by: gpt-4.1 <jamie.tanna+github-copilot@mend.io>
2026-03-02 15:47:28 +00:00
RahulGautamSingh b4cb678bb9 refactor: move onboardingConfig to InheritConfig (#41382)
refactor: move onboardingConfig to InheritConfig
2026-03-02 12:23:13 +00:00
Johannes Feichtner 0bcfef096f refactor(vulnerabilities): revert cleanup ae-cvss-calculator import (#41568) 2026-03-02 06:06:12 +00:00
Johannes Feichtner 3a80eda1e1 test: refactor GitHub vulnerability alert detection tests (#41567) 2026-03-02 06:04:16 +00:00
renovate[bot] c2aa761c1e chore(deps): update linters (main) (#41417)
* chore(deps): update linters

| datasource | package              | from   | to     |
| ---------- | -------------------- | ------ | ------ |
| npm        | @eslint/js           | 9.39.2 | 9.39.3 |
| npm        | eslint               | 9.39.2 | 9.39.3 |
| npm        | eslint-plugin-oxlint | 1.46.0 | 1.49.0 |
| npm        | oxlint               | 1.47.0 | 1.49.0 |
| npm        | typescript-eslint    | 8.55.0 | 8.56.0 |

* chore(deps): update linters

| datasource | package              | from   | to     |
| ---------- | -------------------- | ------ | ------ |
| npm        | @eslint/js           | 9.39.2 | 9.39.3 |
| npm        | eslint               | 9.39.2 | 9.39.3 |
| npm        | eslint-plugin-oxlint | 1.46.0 | 1.49.0 |
| npm        | oxlint               | 1.47.0 | 1.49.0 |
| npm        | typescript-eslint    | 8.55.0 | 8.56.0 |

* Radix rule has been deprecated

* fixup! Radix rule has been deprecated

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2026-02-28 11:23:25 +00:00
Florian Greinacher 21c011ad44 fix(gitlab): skip branch status when no pipeline found, retry after PR creation (#41130)
* fix(gitlab): skip branch status when no pipeline found, retry after PR creation

On GitLab with MR pipelines, posting a commit status without a
pipeline_id causes GitLab to create an unwanted branch pipeline.

Skip posting the status in setBranchStatus() when no pipeline is found
after retries. Retry setting branch statuses after ensurePr() in the
with-pr block so that the MR pipeline created by GitLab can be found.

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

* fix(gitlab): gate skip-status-without-pipeline behind experimental flag

Move the behavior that skips setting a branch status check when no
pipeline is found behind the RENOVATE_X_GITLAB_SKIP_STATUS_WITHOUT_PIPELINE
experimental environment variable. Without the flag, the original
behavior of always posting the status is preserved.

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

* test(gitlab): restore original 'sets branch status' test case

Keep the original test that verifies branch status is set without
the experimental flag alongside the new skip-behavior test.

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

* fix(docs): sort experimental env var headers alphabetically

Move RENOVATE_X_GITLAB_SKIP_STATUS_WITHOUT_PIPELINE after
RENOVATE_X_GITLAB_MERGE_REQUEST_DELAY to satisfy alphabetical
ordering requirement in self-hosted-experimental.md.

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

* fix(gitlab): address PR review comments for skip-status-without-pipeline

Use strict `=== 'true'` check for env var, update docs wording, and
add test coverage for the new experimental flag behavior.

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

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-27 16:45:46 +00:00
Jalil David Salamé Messina 99a3ac22af fix(jsonata): updates when version and digest changed (#38308)
* fix(jsonata): updates when version and digest changed (#36461)

Cherry-picked from #38066 and fixed regression #38252.

Uses the test from #38298 to confirm the regression is not reintroduced.

* fix: review comments

Signed-off-by: Jalil David Salamé Messina <jalil.salame@gmail.com>
Change-Id: I6a6a69641345ca16b82a9e082aa1b19b13e267bf

* fix: issues introduced by branch update

I didn't resolve the merge conflict properly.

Signed-off-by: Jalil David Salamé Messina <jalil.salame@gmail.com>

---------

Signed-off-by: Jalil David Salamé Messina <jalil.salame@gmail.com>
2026-02-27 16:09:45 +00:00
RahulGautamSingh d1fa243a08 refactor: move onboardingConfigFileName to InheritConfig (#41383)
* refactor: move onboardingConfigFilenName to InheritConfig

* fix test

* fix type

* update fn
2026-02-26 20:29:53 +00:00
Michael Kriese d98ad0b462 refactor: cleanup ae-cvss-calculator import (#41525) 2026-02-26 18:18:10 +00:00
Jamie Tanna da5b7c3a67 chore: use a stable sort for manager extract durations (ms) (#41509)
As per request in #40091, we have cases where folks are using tools to
read or diff the `manager extract durations (ms)`

To improve this, we can make sure to perform a stable sort, by
alphabetically sorting our package manager names.

Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
2026-02-26 13:36:13 +00:00
Michael Kriese 6460e6e0fc fix(osv): ensure singleton database instance (#41512)
* fix(osv): ensure singleton database instance

* Update lib/workers/repository/process/vulnerabilities.spec.ts

Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>

---------

Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>
2026-02-26 10:41:56 +00:00
Johannes Feichtner 3eb6f5a31b feat(vulnerabilities): add support for github-actions vulnerability alerts (#40175)
* feat(vulnerabilities): add support for github-actions vulnerability alerts

* fix failed merge from main

* now for real

* review comments

* remove no longer needed assertion
2026-02-26 08:11:14 +00:00
Johannes Feichtner 4fce8ec749 fix(vulnerabilities): fix CJS interop for ae-cvss-calculator import (#41337)
* fix(vulnerabilities): fix CJS interop for ae-cvss-calculator import

* avoid as any
2026-02-25 22:58:31 +00:00
Jamie Tanna c9fec45276 refactor(libyears): clarify log messages are LibYear related (#41489)
refactor(libyears): clarify log messages are LibYear related.

As it can be a little confusing exactly where this log message is coming
from, otherwise.
2026-02-25 22:15:04 +00:00
Yash Saini ed825d52a1 fix(libyear): skip disabled dependencies (#41244)
* fix(libyear): skip disabled dependencies when checking timestamps

* test(libyear): update expectations for disabled dependencies

* test(libyear): rename test to reflect skipping disabled dependencies

* Apply suggestion from @jamietanna

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2026-02-25 16:27:40 +00:00
Jamie Tanna 1b7e5b2106 test(libyears): clarify existing behaviour with enabled: false (#41488)
If we're going to make changes in #41244, we should first document the
existing behaviour (even though it shouldn't be possible).
2026-02-25 13:39:49 +00:00
rngcntr bd7214d04b feat: Log PR labels on PR creation (#41450)
With the current logs, there was no way other than inspecting the actual
PR to determine the PR labels. As a consequence, debugging PR labels
with a dry run was simply not possible. This makes more complex labeling
rules extremely hard to debug.

This commit adds the computed PR labels to the log output when actually
creating a PR as well as when performing a dry run.
2026-02-25 13:08:11 +00:00
Michael Kriese 07c6e733bd chore(instrumentation): instrument osv getVulnerabilities (#41480) 2026-02-25 09:38:07 +00:00
Johannes Feichtner f52ed03963 fix(vulnerability): handle alerts with null or missing firstPatchedVersion (#41338) 2026-02-24 21:57:40 +00:00
RahulGautamSingh 54547c97fc refactor: move onboarding to InheritConfig (#41377)
* refactor: move  to

* fix test
2026-02-24 21:52:41 +00:00
RahulGautamSingh af14f83a05 refactor: move onboardingNoDeps to InheritConfig (#41384)
refactor: move onboardingNoDeps to InheritConfig
2026-02-24 21:45:05 +00:00
Jamie Tanna 0e1ef6e0b0 fix(workers-repository): don't allow <> in branch names (#41406)
Per #41402.

Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
2026-02-24 21:32:45 +00:00
RahulGautamSingh da50c75c49 refactor: move onboardingPrTitle to InheritConfig (#41376)
* refactor: move onboardingPrTitle to InheritConfig

* remove unwanted flat clone
2026-02-22 18:32:16 +00:00
Adam Setch 579ff4c2ba feat: hyperlink warnings to dep dashboard (#40395)
* feat: hyperlink warnings to dep dashboard

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

* feat: hyperlink warnings to dep dashboard

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

* feat: hyperlink warnings to dep dashboard

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

* feat: hyperlink warnings to dep dashboard

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

* add tests

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

* update tests

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

* Merge branch 'main' into feat/hyperlink-dashboard

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

* updated forgejo smartLinks

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-02-20 15:19:35 +00:00
Felipe Santos 7ebba26236 feat: add commitHourlyLimit (#36226)
* feat: add `commitHourlyLimit`

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

* Update docs/usage/configuration-options.md

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

* Remove date optionality

* Fix lint comment

* Fix coverage

* Restore contents of commit.spec.ts

* Use ! somewhere else too

* Change optional parameter to nullish

* Refactor `!` to use proper check

* Fix set-branch-commit.spec.ts lint

* Fix test coverage

* Apply suggestions from code review

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

* Split commit-limit-reached into two

* Fix review comments

* Use toUTC() where applicable

* Simplify another test to utc()

---------

Signed-off-by: Felipe Santos <felipe.santos@ericsson.com>
Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-02-19 18:00:32 +00:00
renovate[bot] 6f64ce68c9 build(deps): update dependency croner to v10 (main) (#41283)
* build(deps): update dependency croner to v10

| datasource | package | from  | to     |
| ---------- | ------- | ----- | ------ |
| npm        | croner  | 9.1.0 | 10.0.1 |

* fix: migration

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-02-18 09:28:19 +00:00
Adam Setch ea8ff660bd feat(dependency-dashboard): hyperlink packages (#41116)
* feat(dependency-dashboard): hyperlink packages

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

* feat(dependency-dashboard): hyperlink packages

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

* Update dependency-dashboard.ts

* Update dependency-dashboard.ts

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-02-18 08:48:44 +00:00
renovate[bot] 645a28c77c build(deps): update dependency prettier to v3.8.1 (main) (#39779)
* build(deps): update dependency prettier to v3.8.1

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

* fixup prettier

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2026-02-18 08:41:34 +00:00
renovate[bot] 4a2578d18d build(deps): update dependency zod to v4 (main) (#41225)
* build(deps): update dependency zod to v4

| datasource | package | from    | to    |
| ---------- | ------- | ------- | ----- |
| npm        | zod     | 3.25.76 | 4.3.6 |

* fix: zod migration

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-02-18 07:37:50 +00:00
RahulGautamSingh fbb564c196 fix: allow grouping of lockFileMaintenance updates (#41240)
* allow grouping of multiplt lockfile prs

* add test

* refactor docs and presets desc

* add tests

* refactor docs
2026-02-17 11:37:24 +00:00
RahulGautamSingh 7a8dcdbd01 refactor(config/inherit): move onboardingBranch to InheritConfig (#40865)
* move onboardingBranch to InheritConfig

* fix lint issue

* fix import order

* more fixrs

* fix import

* fix imports
2026-02-15 08:17:11 +00:00
Sergei Zharinov b02897fab1 refactor(lint): Fix lint violations (#40965)
* refactor(lint): Fix lint violations

* Update lib/modules/versioning/versioning-metadata.spec.ts

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

---------

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-02-06 15:34:33 +00:00
Sergei Zharinov 9d857c1f68 refactor(lint): Organize imports with biome (#40966) 2026-02-06 13:40:01 +00:00
Sergei Zharinov c531748f09 refactor(presets): Rename to *.preset.ts and enforce sort-keys via oxlint (#40976) 2026-02-06 13:39:02 +00:00
Johannes Feichtner c396b58e35 fix(workers): re-attempt platform automerge only in case of new commits (#40028) 2026-02-03 10:08:12 +00:00