Commit Graph

2547 Commits

Author SHA1 Message Date
Jamie Tanna dc9f86873d fix(onboardingAutoCloseAge): don't allow higher inherited value than global (#40810) (#40817)
Our intent for `onboardingAutoCloseAge` would be that the global
config would take precedence over the inherited config value.

Our implementation missed this, which means that inherited config could
then override the value, including disabling it.

To correct this, we can make sure that when using `getInheritedOrGlobal`
we only allow the inherit config option if it is lower than the global
option.

Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
2026-02-02 08:55:23 +00:00
Zack Kanter 7373eae466 chore(logging): include PR number when detecting existing branch PR (#40832)
feat(logging): include PR number when detecting existing branch PR

Include the PR number in debug log messages when:
- An existing open branch PR is found ("Found existing branch PR #123")
- A closed PR already exists ("Closed PR #123 already exists")

This aids debugging by making it easier to correlate log entries with
specific PRs when reviewing Renovate logs.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 08:07:48 +00:00
Jamie Tanna 991fdbfd6b chore(onboarding): capitalise the prHourlyLimit (#39443)
As that is the correct name.
2026-01-29 17:58:45 +00:00
Jamie Tanna d1e3f13874 chore: use updateType in log message 2026-01-29 14:21:42 +00:00
Michael Kriese 3ed1817e2b fix!: prevent grouping of lockfile maintenance updates (#40781) 2026-01-29 14:21:42 +00:00
Sergei Zharinov 2b0e80b884 feat!: Switch to ESM modules (#40756) 2026-01-29 14:21:41 +00:00
RahulGautamSingh c7222c643d fix!: prevent grouping of replacement updates (#40758)
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-01-29 13:28:06 +00:00
Jamie Tanna cb49754391 fix(self-hosted)!: don't use shell: true for postUpgradeTasks (#40230)
To make sure that we're using secure defaults, we can make sure that
this is off-by-default.

Self-hosted administrators will be able to turn this back in if they
wish.
2026-01-29 13:28:05 +00:00
RahulGautamSingh c58c16f82d feat: inherit support for onboardingAutoCloseAge (#40086)
* feat: inherit support for onboardingAutoCloseAge

* reduce changes

* onboardingAutoCloseAgeLimit

* use global onboardingAutoCloseAge as limiter

* update

* revert extra changes

* afterAll
2026-01-27 16:36:44 +00:00
RahulGautamSingh e958373dbf chore: replace URL.parse (#40703)
* replace URL.parse

* fix test

* fix import extensions

* coverage

* add tests

---------

Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>
2026-01-27 16:19:02 +00:00
Sergei Zharinov c5b0a74f82 refactor: Remove constructor parameter properties (#40712) 2026-01-27 11:16:26 +00:00
Teemu Matilainen bde55d5462 fix: workingDirTemplate must be relative to the repo root (#40068)
* fix: `workingDirTemplate` must be relative to the repo root

The `postUpgradeTasks.workingDirTemplate` did not work correctly,
as the working directory is the directory where Renovate is executed.

Thus prepend the paths with `localDir`, i.e. the repository root.

* refactor: use the return value of ensureLocalDir

The function already expands the path.
2026-01-27 06:59:26 +00:00
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00
RahulGautamSingh 7eb1ee9ed7 fix(reconfigure): migrate before validating (#40647)
migrate before validating
2026-01-26 19:09:10 +00:00
Jamie Tanna e799a4cf76 chore(types): document ProcessStatus (#40637)
As it's useful to have this more explicitly described, even though it
may be generally straightforward to guess what they each mean.
2026-01-23 18:36:40 +00:00
Jamie Tanna 0326bd60cd fix(onboardingAutoCloseAge): mark repositories as "closed-onboarding" after close (#40633)
As noted in #40631, when autoclosing an onboarding PR due to age, we're
not marking the repository status as `closed-onboarding`, which means
the repository cache (and current status fo the repo) is not
appropriately updated, and a repository needs to be scanned again to
update accordingly.

We should throw this error when we've performed the auto-close, so
Renovate can then mark the status correctly.
2026-01-23 15:08:40 +00:00
Jamie Tanna 95efe12f8a fix(onboardingAutoCloseAge): close PRs when onboarding cache is up-to-date (#40629)
As noted in #40627, when using a Repository Cache, the
onboardingAutoCloseAge does not trigger if the repository already has
its onboarding state already cached.

This is most prevalent in the Mend Developer Platform, where we heavily
cache our users' repositories, but leads to the fact that turning on
`onboardingAutoCloseAge` will take no effect.

To make this work, we can refactor how we handle `ensureOnboardingPr`,
to make sure that we still perform auto-closing even if the cache is
up-to-date.

Although not at the "rule of there", we can reduce code duplication for
`ensureOnboardingAutoCloseAge` by extracting a function.
2026-01-23 11:41:29 +00:00
Jamie Tanna 8a9b119144 test(onboarding): clarify that if cache is valid, no onboarding PR updates (#40628)
As a prerequisite for the fix in #40627, we should make sure that this
existing behaviour is documented.
2026-01-23 10:29:19 +00:00
Jamie Tanna 9d5e9de4a9 fix(onboardingAutoCloseAge): correctly handle partial days elapsed (#40606)
As noted in #40604, we're seeing cases where we need to wait
`onboardingAutoCloseAge+1` days until the onboarding PR will be
auto-closed.

To fix this, we can refactor `getElapsedDays` to optionally return a
floating point number, which we can then perform more careful
calculations against.

As we're now being a little more careful with timings being used for our
date comparisons, we need to make sure that Vitest fakes our timer
during these tests.

Instead of long floating-point numbers, we should use a 2 decimal
place value for log messages, as they're more readable to humans.
2026-01-23 07:49:14 +00:00
Jamie Tanna dcf86569b3 test(onboardingAutoClose): add additional tests for isOnboarded (#40602)
As part of future changes, it'll be more useful to have more test
coverage to show the behaviour.
2026-01-22 17:36:30 +00:00
Jamie Tanna bab5935931 chore(onboardingAutoCloseAge): log calculations (#40600)
To provide more information around the process used to determine whether
an onboarding PR will be auto-closed by `onboardingAutoCloseAge`, we can
add some more logs.
2026-01-22 17:19:40 +00:00
RahulGautamSingh 50b5f5a900 refactor(config): add an InheritConfig class (#40449)
* init InheritConfig class

* fix imports

* fix order

* add test

* fix import order

* RepoInheritConfig -> GlobalInheritableConfig

* fix import order

* Apply suggestions from code review

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

* handle null/undefined inherited values

* add tests

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2026-01-19 13:45:54 +00:00
Gurvan BK 4458a78f29 chore: fix typo in onboarding autoclose debug log (#40438) 2026-01-15 16:03:15 +00:00
Jamie Tanna 6a4fa3f245 refactor(presets): return merged presets from resolveConfigPresets (#40422)
As part of future changes, we want to log the shallow configuration (the
full resolved configuration, but without any internal Renovate
configuration presets), where we'll want to note which presets have not
been merged in.

Before that, we can start with an initial refactor to indicate which
have been merged, and return them.
2026-01-14 16:52:16 +00:00
renovate[bot] acacad57c6 chore(deps): update linters (main) (#40277)
* chore(deps): update linters

| datasource | package              | from   | to     |
| ---------- | -------------------- | ------ | ------ |
| npm        | eslint-plugin-oxlint | 1.36.0 | 1.38.0 |
| npm        | typescript-eslint    | 8.50.1 | 8.52.0 |

* chore: enable oxlint gha format

* chore: fix lint

* chore: fix lint

* chore: fix lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2026-01-14 15:32:48 +00:00
Adam Setch 5c19dd608d feat(dashboard): add heading for abandoned deps section (#40381)
* feat(dashboard): heading for abandoned deps section

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

* feat(dashboard): heading for abandoned deps section

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-01-12 15:30:33 +00:00
Adam Setch ec4c23e57d feat: emojify truncated notes (#40367)
* feat: emojify truncated notes

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

* feat: emojify truncated notes

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

* feat: emojify truncated notes

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

* feat: emojify dashboard notices

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

* feat: emojify dashboard notices

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-01-11 09:34:14 +00:00
Adam Setch 330d175341 feat: caution attestation notice (#40368)
Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-01-11 08:03:51 +00:00
Adam Setch 44ddf5d16b feat: emojify dashboard notices (#40369)
Signed-off-by: Adam Setch <adam.setch@outlook.com>
2026-01-11 08:03:05 +00:00
Sergei Zharinov 2d88578fdc fix(auto-replace): prevent digest corruption when using replacementNameTemplate (#40170)
When using `replacementNameTemplate` with Docker images that have pre-pinned
digests, the auto-replace logic was incorrectly entering the `currentDigestShort`
replacement branch even when the digest didn't need to be changed.

Since `currentDigest === newDigest`, the first digest replacement block was
skipped. But the `else if` checked only `currentDigestShort !== newDigest`,
which was true (e.g., "5fa2edb" !== "sha256:5fa2edb..."), causing it to replace
the short string with the full digest, corrupting the result to
"sha256:sha256:..." format.

The fix adds a guard condition to skip the `currentDigestShort` replacement
when the full `currentDigest` already matches `newDigest`.

Fixes #40169
2026-01-06 14:07:56 +00:00
Jamie Tanna cbe1d049c6 feat(self-hosted): allow choice of shell: true for postUpgradeTasks (#40229)
As part of hardening the configuration around executing
`postUpgradeTasks` with `shell: true`, we can give self-hosted
administrators the opportunity to configure this.

This continues to be on-by-default to be non-breaking, but in the next
major version can be flipped to the safer option.
2025-12-31 11:55:04 +00:00
Jamie Tanna 140a777105 fix(postUpgradeTasks): always run commands with shell mode
As part of future changes to ensure that `shell` is disabled by default,
we should first enforce this for our `postUpgradeTasks`, which are
user-controlled and are more likely to contain shell-interpolated
variables.

We need to add a new `shell` type to pass around, as it was previously
not optional.
2025-12-31 10:37:17 +00:00
Jamie Tanna bebff1ca66 test: only validate subset of arguments to exec
As part of a future change, we'll add additional arguments, but don't
need to validate them in every test.

To make sure that it's clearer what these tests are validating, we'll
use `expect.objectContaining` to test a subset of the object keys.
2025-12-31 10:37:17 +00:00
Adam Setch 5e1da5e56a feat(dashboard): detected dependencies update new values (#40032)
* feat(dashboard): detected dependencies update new values

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

* feat(dashboard): detected dependencies update new values

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

* feat(dashboard): detected dependencies update new values

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

* feat(dashboard): detected dependencies update new values

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-18 14:00:55 +00:00
Adam Setch 7309d1897c refactor: use unicode right-arrow for changes template (#40033)
* refactor: use unicode right-arrow for changes template

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

* refactor: use unicode right-arrow for changes template

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-17 11:45:21 +00:00
Adam Setch 912d19b634 feat: log all awaiting schedule (#40021)
* feat: log all awaiting schedule

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

* feat: log all awaiting schedule

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

* feat: log all awaiting schedule

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-16 10:11:10 +00:00
RahulGautamSingh ef0ff99f37 feat(self-hosted): onboardingAutoCloseAge (#39876)
* init

* prevent multiple closed comments

* add tests

* test + types

* doxcs

* revert createdAt type change

* revert inhertited config support
2025-12-15 16:53:13 +00:00
Jamie Tanna 847c980f82 chore(minimumReleaseAge): only log once per case of "did not have a releaseTimestamp" (#39936)
This will make sure that we're calling it for each release being
skipped/continued with, so we're reducing the log lines for duplicate
dependencies across the codebase.
2025-12-15 08:52:23 +00:00
Adam Setch 09bf112be1 fix(dashboard): only add count if has deps (#39889)
refactor(dashboard): only add count if has deps

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-11 15:57:39 +00:00
RahulGautamSingh 214e1da38d feat(config): allow template fields in allowedVersions (#38922)
* handlebars: regsiter add helper

* allow template fields in allowedVersions

* fix test

* fix doc example

* remove comments

* Apply Suggestions

* use empty object instead of undefined

* template(helpers/add): handle undefined/null

* Apply Suggestions

* Apply suggestion from @RahulGautamSingh

* Apply suggestion from @RahulGautamSingh

* fix conflict

* remove unused function

* fix lint issue

* fix test

* Update docs/usage/configuration-options.md

Co-authored-by: Anne Stellingwerf <1637358+astellingwerf@users.noreply.github.com>

* prettier

* throw error if invalid inputs used

---------

Co-authored-by: Anne Stellingwerf <1637358+astellingwerf@users.noreply.github.com>
2025-12-11 14:52:15 +00:00
Felipe Santos d32eedbb10 feat(lookup): add maxMajorIncrement (#38854)
* feat(lookup): add `maxMajorIncrement`

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

* Update lib/workers/repository/process/lookup/filter.ts

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

---------

Signed-off-by: Felipe Santos <felipe.santos@ericsson.com>
Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
2025-12-10 22:32:05 +00:00
Adam Setch 4983ce4b59 refactor(dashboard): standardize blocked section headings (#39753)
Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-10 16:59:51 +00:00
Adam Setch a5fba21195 feat(dashboard): add totals to detected dependency summaries (#39770)
feat: add totals to detected dependency summaries

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-09 08:33:52 +00:00
Adam Setch a3fdd35366 feat(dashboard): open all awaiting schedule PRs (#39674)
* feat(dashboard): open all PR controls for schedule and status checks

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

* feat(dashboard): open all pending schedule PRs

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

* feat(dashboard): open all awaiting schedule PRs

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

* feat(dashboard): open all awaiting schedule PRs

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

* fix order

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

* feat(dashboard): open all awaiting schedule PRs

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

* Update read-only-issue-body.ts

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-08 20:49:02 +00:00
Jamie Tanna 58d6f4125b fix(types): make result a strong type (#39783)
As a way to make it more predictable what the possible states the
`result` in a given `Repository finished` log message can be, we can
wrap these into a type.

This requires a slight refactor where these are used to make sure that
Typescript is happy with the value being returned.

We can capture the common groups of errors (which are then present as a
`RepositoryResult`) and expose that to be used.
2025-12-08 18:17:54 +00:00
Jamie Tanna 5d807ebaad fix(workers/repository): add missing statuses for disabling a repository (#39808)
As noticed while working on changes in #39793, we were missing a couple
of repository results that will lead to a repository being treated as
disabled.
2025-12-05 17:17:30 +00:00
Adam Setch a10b97daf4 feat: map emojis to repository problems (#39769)
* feat: add emojis for repo problem levels

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

* feat: add emojis for repo problem levels

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

* feat: add emojis for repo problem levels

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

* feat: add emojis for repo problem levels

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

* feat: add emojis for repo problem levels

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

* feat: add emojis for repo problem levels

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

* incorporate feedback

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

* incorporate feedback

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

* Update common.ts

* Update common.ts

* Update common.ts

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-05 13:03:08 +00:00
Adam Setch 2020e43132 feat(dashboard): add deprecations / replacements section (#39752)
* feat(dashboard): deprecations / replacements section

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

* rename

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-04 13:56:50 +00:00
Adam Setch 68baaa2856 refactor(dashboard): consistently use title case for headings (#39754)
* refactor(dashboard): proper-case section headings

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

* refactor(dashboard): proper-case section headings

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

---------

Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-04 13:55:44 +00:00
Adam Setch ba0ec80219 fix(dashboard): formatting for vulnerabilities section (#39775)
Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-04 09:20:31 +00:00