Commit Graph

3688 Commits

Author SHA1 Message Date
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
RahulGautamSingh 595eabd5b0 fix: log when limits are reached (#39917)
* log when limits are reached

* fixup! log when limits are reached

---------

Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>
2025-12-11 10:42:29 +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
Adam Setch ea267ba3f5 fix: branch error message logic (#39716)
Signed-off-by: Adam Setch <adam.setch@outlook.com>
2025-12-03 08:33:46 +00:00
Jamie Tanna b5cd0317cf fix(git): report Git operation statistics at end of run (#39596)
Now we have instrumented our Git operations with tracing, we can make
sure that users who are not using OpenTelemetry still get insights into
their Git operation usage using a debug log output.

Following how other insights are produced, we can introduce a new type
in `lib/util/stats` for `GitOperationStats`, which will track the
overall execution for each operation type, and output them in the same
style as we use for other timing reports.

At the end of a Renovate run, we'll then make sure that this is logged
into a debug log for further investigation.

To create the report, we can make sure that we introduce a new
OpenTelemetry `SpanProcessor`, which will run when we end our Run, and
store any Git operations in `GitOperationStats`.

This adapts code from GPT-4.1 and code from [0].

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

[0]: https://github.com/yurisouza/monitoria-sdk/blob/ca9d751fa7c3a785a04f87b8966bb782b4617021/src/adapters/nestjs/span-duration-tracker.ts#L18-L27
2025-12-01 15:53:26 +00:00
Birger Johan Nordølum 00db105f8c chore: fix typo (#39627)
atleast -> at least.
2025-11-29 13:39:45 +00:00
Michael Kriese f212641b42 chore: lint fix (#39630) 2025-11-29 13:31:19 +00:00
Jamie Tanna e1ad5c2ddd fix(instrumentation): instrument manager extractions (#39613)
As a means to provide more insight into how long package manager
extractions take when using instrumentation, we can wrap the individual
manager's extractions, as well as the filtering of packageFiles for each
manager.
2025-11-28 19:32:13 +00:00
Jamie Tanna 55a447e805 chore(instrumentation): further instrument extract phase (#39614)
As it's interesting to see how much each of these take.
2025-11-28 14:19:09 +00:00
Jamie Tanna 498b9df2f0 fix(instrumentation): instrument manager lookups (#39612)
As a means to provide more insight into how long package manager lookups
take when using instrumentation, we can wrap the fetching of updates in
a trace per manager.
2025-11-28 14:07:42 +00:00
Jamie Tanna 5282a9ae27 fix(instrumentation): wrap branches in spans (#39608)
As part of ongoing work to improve OpenTelemetry instrumentation of
Renovate in #38609, we can instrument our branch creation with the
branch name (and relevant Semantic Convention attributes) for
visibility.
2025-11-28 13:49:04 +00:00
Jamie Tanna c1a8da0275 fix(instrumentation): correctly instrument extract and lookup (#39611)
When calling `extractDependencies`, we actually perform both `extract`
and `lookup` splits. However, we are instrumenting the whole method call
as the `extract` split, which results in incorrect tracing data.

To correct this, we can wrap the specific code responsible for the
extraction into `extract`, and then the separate code for `lookup`
accordingly.

This also makes sure that `emptyExtract` sets repository splits.
2025-11-28 13:47:29 +00:00
Jamie Tanna 1fc78a0326 fix(instrumentation): use Semantic Conventions for repository span (#39609)
As part of ongoing work to improve OpenTelemetry instrumentation of
Renovate in #38609, we can improve our repository instrumentation by
using Semantic Convention attributes for the platform, repo and owner.
2025-11-28 13:31:48 +00:00
Michael Kriese c641239c19 fix: use stricter types for renovate config (#39594)
* fix: use stricter types for renovate config

* fix: revert changes

* Apply suggestions from code review
2025-11-28 13:16:27 +00:00
Jamie Tanna ce729a84c4 chore(telemetry): add span attribute for splits (#38633)
As part of a step towards better OpenTelemetry instrumentation as part
of #38609, we can start by introducing a known span attribute for the
repository "split" we're currently processing.

This requires a slight refactor of the `SpanOptions`, to use our custom
type, which enforces the `RenovateSplit` type when using the span name.

This adds it into each of the splits we currently instrument.

Co-authored-by: secustor <sebastian@poxhofer.at>
2025-11-28 12:32:00 +00:00
RahulGautamSingh 61c943c028 feat: prBodyHeadingDefinitons (#39460)
* feat: prBodyHeadingDefinitons

* Apply Suggestions

* Apply suggestions

* Update docs/usage/configuration-options.md

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

---------

Co-authored-by: Jamie Tanna <github@jamietanna.co.uk>
Co-authored-by: Jamie Tanna <jamie.tanna@mend.io>
2025-11-26 10:15:41 +00:00
Michael Kriese 050ac8d23b chore: better code coverage (#39518) 2025-11-25 15:01:54 +00:00
Michael Kriese bbc27b2afb fix(minimumReleaseAge): treat minimumReleaseAge=0 days as disabled (#39494)
* fix: treat `minimumReleaseAge=0 days` as disabled

* fix: treat `minimumReleaseAge=0 days` as disabled
2025-11-24 11:24:26 +00:00
RahulGautamSingh 59fca8dbfa chore(limits): de-duplicate logs for same dep (#39413)
de-duplicate logs
2025-11-19 16:50:05 +00:00
RahulGautamSingh 2f2f2ea8a4 chore: log prNotPendingHours (#39287)
* log-pr-not-pending-hrs

* Apply Suggestions
2025-11-18 18:35:56 +00:00
Jamie Tanna ccb0462820 fix(minimumReleaseAgeBehaviour): correct log message to use valid option (#39374) 2025-11-18 10:22:47 +00:00
Simon Berger cb1bd5a81b feat: allow configFileNames to be set through env (#39144)
* test: add failing test for reading configFileNames from env

* fix: move configFileNames handling to shared config parsing

* feat: allow configFileNames to be set through env

* fix: move unit test from file to index

* test: add test for setting configFileNames through cli

* fix: fix merge

* test: use multiple config file names in tests

* test: add a length check after adding custom filenames
2025-11-17 15:27:28 +00:00
Sergei Zharinov 558bdc159d feat: Cleanup mutexes before each run (#38987)
* feat: Cleanup mutexes before each run

* Update setup.ts

* Update mutex.spec.ts

* Update setup.ts

* Unmock mutex in deb datasource spec to prevent race condition

* Update index.spec.ts
2025-11-15 21:24:43 +00:00
Michael Kriese 2c96c9973f feat(bumpVersions): support short versions (#39280) 2025-11-13 11:22:01 +00:00
Dave 83d64647b7 feat: add configValidationError option to log config validation errors as errors instead of warnings (#39177)
* feat: add configValidationError option to log config validation errors as errors instead of warnings

* Moved `configValidationError` docs to correct file.
2025-11-10 17:09:20 +00:00
Sergei Zharinov 67b256aa3f fix: ignore .npmrc when the npmrc configuration is being used (#39205) 2025-11-10 16:12:45 +00:00
RahulGautamSingh 76f911041a refactor: use named exports (#39196)
* use named exports

* fix test

* add missing imnport

* fix prettier
2025-11-10 12:00:35 +00:00
renovate[bot] b34bbb5b2a chore(deps): update linters (main) (#38897)
* chore(deps): update linters

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| npm        | @eslint/js        | 9.37.0 | 9.39.0 |
| npm        | eslint            | 9.37.0 | 9.39.0 |
| npm        | typescript-eslint | 8.45.0 | 8.46.2 |

* refactor: fix lint issues (#39183)

* chore(deps): update linters

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| npm        | @eslint/js        | 9.37.0 | 9.38.0 |
| npm        | eslint            | 9.37.0 | 9.38.0 |
| npm        | typescript-eslint | 8.45.0 | 8.46.2 |

* chore(deps): update linters

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| npm        | @eslint/js        | 9.37.0 | 9.39.0 |
| npm        | eslint            | 9.37.0 | 9.39.0 |
| npm        | typescript-eslint | 8.45.0 | 8.46.2 |

* refactor

* revert unwanted changes

* version sync

* version sync

* sync versions

* sync versions

* Apply suggestion from @RahulGautamSingh

* use named exports

* fix new lint issues

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: RahulGautamSingh <rahultesnik@gmail.com>
2025-11-10 10:33:01 +00:00