Commit Graph

3413 Commits

Author SHA1 Message Date
Felipe Santos 523bf29be8 fix: not applying global options in object entries in repositories array (#43295)
* fix: not applying global options in object entries in `repositories` array

* Use isNonEmptyObject

* Add test for per-repo override

* Use AllConfig instead
2026-06-19 14:55:52 +00:00
Jamie Tanna 89be048657 refactor: use GlobalConfig for productLinks (#44098)
As a follow-up to e1e5c398e0, we can make
sure that we remove references to hardcoded docs site URLs, by wiring in
the `GlobalConfig.get(...)` call.

To do this, we need to make sure that `productLinks` exists to be called
by `GlobalConfig.get`.

Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
2026-06-19 10:34:03 +00:00
renovate[bot] 3c4d1c62ab feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.62.0 (main) (#44096)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.62.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.61.2 | 13.62.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-19 01:37:31 +00:00
renovate[bot] a69f4f9056 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.2 (main) (#44095)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.61.1 | 13.61.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-19 00:35:30 +00:00
renovate[bot] 23a2c3c803 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.1 (main) (#44090)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.61.0 | 13.61.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-18 18:35:54 +00:00
Jamie Tanna e1e5c398e0 chore: ensure we use productLinks for docs site links where possible (#44066)
* chore: ensure we use `productLinks` for docs site links where possible

Where possible, we should be making sure that we're using the
`productLinks`' configuration for  the documentation site, especially
where self-hosted users may create a mirror of their docs[0].

To make sure we catch this in the future, we can introduce a custom
linting rule with Oxlint to enforce this.

Where we (currently) can't wire in the config, we can disable it against
that line.

[0]: https://www.jvt.me/posts/2024/11/19/renovate-private-docs/

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

* fixup! chore: ensure we use `productLinks` for docs site links where possible

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

* fixup! chore: ensure we use `productLinks` for docs site links where possible

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-06-18 08:55:27 +00:00
renovate[bot] 50a78d8e70 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.0 (main) (#44078)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.61.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.60.2 | 13.61.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-18 08:45:58 +00:00
Jamie Tanna 16187259eb chore(instrumentation): instrument config validation (#43839)
As a way to understand how the underlying config validation code
performs, we can measure it.
2026-06-18 06:16:24 +00:00
renovate[bot] fdf5f9dff8 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.60.2 (main) (#44045)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.60.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.59.4 | 13.60.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 22:41:05 +00:00
Jan-Otto Kröpke e921d2754b feat(presets/workarounds): Add grafana/grafana-enterprise to grafanaDockerImageVersioning (#44058)
* fix(presets/workarounds): Add grafana/grafana-enterprise to grafanaDockerImageVersioning

* fix lint
2026-06-17 10:31:20 +00:00
Sebastian Poxhofer 7573fa98f2 feat(platform/forgejo): validate http request with schemas (#43900)
* fix(platform/forgejo): replace getJsonUnchecked with validated getJson

Migrate all getJsonUnchecked calls in the Forgejo platform module to use
getJson with Zod schemas for response validation. Add comprehensive Zod
schemas to schema.ts and update test mocks to use proper data formats.

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

* simplify by using infered types

* first pass on reducing duplications

* move PrStatus and CommitStatus to schema

* remove code handling BranchStatus values now ensured by schema

* remove now unreachable code

* fix coverage

* use forgejo schemas instead gitea for changelog fetching

* feat: do not abort repo on unrecognized default merge style

* refactor: instead of usages of `?? {}` with a default parameter

* tighten required parameters and move contentString generation to schema

* refactor: merge both content schemas and use a discriminated union

* refactor: move patchJson and postJson to schema validation

* Make body field required

* make schema more strict

* use DeepNullish

* simplify catch

* revert the gitea Content type change

* unify User

* log more nicely if accidentally not a file has been referenced

* Use fakeSha and LongCommitSha schema

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 14:22:01 +00:00
renovate[bot] 8af0cbc7b5 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.4 (main) (#44027)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.4

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.59.3 | 13.59.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-16 09:57:16 +00:00
Jan-Otto Kröpke 7424be0484 feat(presets/workaround): add Grafana Docker image versioning workaround (#44015)
* feat(presets/workaround): add Grafana Docker image versioning workaround

* Update lib/config/presets/internal/workarounds.preset.ts

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-06-16 09:04:12 +00:00
RahulGautamSingh 204a63d945 fix(config/parse): ignore trailing commas during jsonc validation (#44000)
* fix(config/parse): ignore trailing commas during jsonc validation

* use codeBlock for wrapping code
2026-06-15 06:35:18 +00:00
renovate[bot] 6d30628faa fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.3 (main) (#44003)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.59.2 | 13.59.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-15 06:31:15 +00:00
renovate[bot] 71beea4866 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.2 (main) (#43987)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.59.1 | 13.59.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 13:28:19 +00:00
renovate[bot] e9ee107b1a fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.1 (main) (#43977)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.59.0 | 13.59.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-13 04:28:34 +00:00
renovate[bot] da4e48e030 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.0 (main) (#43969)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.59.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.58.8 | 13.59.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 19:39:06 +00:00
renovate[bot] 8cd4e2c9a9 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.8 (main) (#43966)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.8

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.58.7 | 13.58.8 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 16:33:10 +00:00
renovate[bot] c9277cab03 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.7 (main) (#43963)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.7

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.58.6 | 13.58.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 12:40:19 +00:00
renovate[bot] 4a2842d629 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.6 (main) (#43958)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.6

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.58.5 | 13.58.6 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-12 10:33:45 +00:00
renovate[bot] 5a5d8f53f6 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.5 (main) (#43911)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.5

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.58.0 | 13.58.5 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-11 19:16:37 +00:00
Pierluigi Lenoci 09def4f3a7 feat(config): add statusCheckWhen option to control individual Renovate status checks (#42887)
* feat: add generic statusCheckWhen option to control any renovate status check

Replace the artifacts-specific `artifactsCheckWhen` option with a generic
`statusCheckWhen` object that can control when ANY Renovate status check is
emitted. Keys mirror `statusCheckNames`: `artifactError`, `configValidation`,
`mergeConfidence`, `minimumReleaseAge`.

Each key accepts: "always" | "never" | "failed"
- always: set check on every commit (green on success, red on failure)
- never: skip the check entirely
- failed: only set the check when there is a failure (silent on success)

Default values preserve existing behavior:
- artifactError: "failed" (only report failures, as before)
- configValidation: "always"
- mergeConfidence: "always"
- minimumReleaseAge: "always"

The defaults table in docs is autogenerated from the option's `default`
field via `tools/docs` so the docs cannot drift from the source of truth.

Logging is gated so that "skipping" debug lines only fire when there is
something to skip (errors / status set), keeping logs quiet on every
branch run when a check is set to "never".

Example configuration:
```json
{
  "statusCheckWhen": {
    "artifactError": "always",
    "mergeConfidence": "never"
  }
}
```

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>

* refactor(docs): address viceice review — single replace marker, coerceObject, simplify replaceContent call

- Use single replace marker instead of begin/end pair in docs and config.ts
- Use coerceObject from lib/util/object.ts instead of manual (val ?? {}) as Type
- Refactor replaceContent call to match upstream API signature (string, not object)

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>

* fix: fix test for never mode with no errors and format docs

- Add missing config.artifactErrors = [] in test that checks
  'skips status entirely when mode is never with no errors' (beforeEach
  sets artifactErrors to [{fileName: 'some'}], test needs no errors)
- Reformat note block in docs from 4-space to 2-space indent to match
  prettier formatting (custom mkdocs-admonitions plugin expectation)

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>

---------

Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>
2026-06-10 14:22:43 +00:00
renovate[bot] 20fe86c10f feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.0 (main) (#43909)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.58.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.57.1 | 13.58.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-10 11:06:13 +00:00
renovate[bot] b103f93f01 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.57.1 (main) (#43903)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.57.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.57.0 | 13.57.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-10 01:31:23 +00:00
renovate[bot] ae859faa54 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.57.0 (main) (#43893)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.57.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.8 | 13.57.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 10:32:22 +00:00
Jan-Otto Kröpke bb147e0414 fix(config/presets): Exclude docker.io/kindest/node from nodejs versioning (#43772)
* fix(lib): Exclude docker.io/kindest/node from nodejs versioning

* Update group.preset.ts
2026-06-08 13:33:38 +00:00
Tinus Mørch Abell 2abd139cd2 feat(platform/github): support gitUrl option on github (#43531)
* feat(config): add github to gitUrl supportedPlatforms

Declare GitHub as a supported platform for the gitUrl option so users
can configure ssh/endpoint URL resolution on github.com and GHES.

Wiring in the github platform module follows in subsequent commits.

Refs: renovatebot/renovate#43086

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

* feat(platform/github): fetch sshUrl from repoInfoQuery

Add sshUrl to the GraphQL repository query and to the GhRepo type so
the platform can resolve SSH-based git remotes. Typed as nullable
to match the gitlab pattern and to allow a missing-field error path.

Refs: renovatebot/renovate#43086

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

* feat(platform/github): add getRepoUrl helper

Introduce a getRepoUrl helper that returns the repository git URL based
on the gitUrl option:
- 'ssh' uses the sshUrl from the GraphQL repo response; throws
  CONFIG_GIT_URL_UNAVAILABLE if not available
- 'default' and 'endpoint' build an https URL from the configured
  endpoint with credentials embedded (current behavior)

The helper is unused in this commit; initRepo wiring follows.

Refs: renovatebot/renovate#43086

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

* feat(platform/github): support gitUrl in initRepo

Destructure gitUrl from RepoParams and replace the inline URL
construction with getRepoUrl calls. The working URL uses the fork's
ssh_url when running in fork mode, otherwise the GraphQL repo.sshUrl.
The upstream URL (used when forkCreation and a parentRepo is set)
uses repo.sshUrl, which is the parent's URL because the GraphQL
query runs before the fork swap.

GhRestRepo gains an ssh_url field so findFork/createFork responses
can carry the fork's SSH URL forward.

Refs: renovatebot/renovate#43086

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

* test(platform/github): cover gitUrl branches

Add unit tests for getRepoUrl in utils.spec.ts and three integration
tests in index.spec.ts that exercise initRepo with gitUrl=ssh:

- ssh URL is forwarded to git.initRepo
- missing sshUrl with gitUrl=ssh throws CONFIG_GIT_URL_UNAVAILABLE
- fork mode uses the fork's ssh_url for url and the parent's sshUrl
  for upstreamUrl

initRepoMock and forkInitRepoMock now include sshUrl in the GraphQL
response so existing tests continue to populate the field that the
new code path reads.

Refs: renovatebot/renovate#43086

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

* docs: note github-specific gitUrl behavior

Document that 'default' and 'endpoint' produce the same URL on GitHub,
that 'ssh' uses the repository's sshUrl, and that fork mode propagates
SSH selection to both the working URL and the upstream URL.

Refs: renovatebot/renovate#43086

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

* refactor(platform/github): pass parsed URL to getRepoUrl

Accept a pre-parsed URL in getRepoUrl instead of re-parsing the
endpoint string inside the helper. The endpoint is validated during
initPlatform so the helper no longer needs its own null check. The
caller now parses once and passes the URL to both initRepo call
sites; the helper clones it before mutating.

Also assert config.repository as non-null at the initRepo call site,
fixing the TS2345 error reported by the lint-other job.

* Update docs/usage/self-hosted-configuration.md

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

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2026-06-08 11:51:46 +00:00
renovate[bot] 778b05c5d7 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.8 (main) (#43863)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.8

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.7 | 13.56.8 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 03:28:26 +00:00
renovate[bot] 9bac78590b fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.7 (main) (#43856)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.7

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.6 | 13.56.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-07 21:27:19 +00:00
renovate[bot] 52d88af2cb fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.6 (main) (#43853)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.6

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.5 | 13.56.6 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-07 11:28:17 +00:00
renovate[bot] 5d451e9729 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.5 (main) (#43851)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.5

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.4 | 13.56.5 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-07 05:31:18 +00:00
Jamie Tanna 0ba948cb85 fix(types): allow global config to be set in repositories (#43837)
As we appear to document this [0] as behaviour that's possible.

This make sense to be allowed, and to make it so a self-hosted
administrator can set more controlled settings across their configured
repos.

[0]: https://github.com/renovatebot/renovate/blob/6e411730a05a642c22ffa5fa4ab71f0eea4cdad2/lib/config/secrets.spec.ts#L42-L44
2026-06-06 08:56:07 +00:00
Jamie Tanna 460fa82cf5 fix(config/validation): validate children of arrays in global config (#43836)
* test(config/validation): document existing lack of coverage

So when we change it in the future, we have a failing test.

* fix(config/validation): validate children of arrays in global config

As we previously weren't doing so.
2026-06-06 08:54:16 +00:00
Jamie Tanna d0deb9077e test(config/validation): remove platformConfig test (#43835)
As the test case appears to be wrong (we return an error, not a warning)
and doesn't seem to be exercising a field we've had available in recent
Renovate releases, since this test was introduced in
bb6c27faf8.
2026-06-06 08:50:00 +00:00
Jamie Tanna 6e411730a0 test(config/validation): validate all warnings/errors (#43832)
* test(config/validation): remove `platformConfig` test

As the test case appears to be wrong (we return an error, not a warning)
and doesn't seem to be exercising a field we've had available in recent
Renovate releases, since this test was introduced in
bb6c27faf8.

* test(config/validation): use a valid cache namespace for test

To prevent unnecessary errors, when we start validating all
`warnings`/`errors`.

* test(config/validation): validate all `warnings`/`errors`

To make sure that we've got coverage to shows us any potential breaking
changes as new validation is added.

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

---------

Co-authored-by: Claude Opus 4.7 <jamie.tanna+claude-code@mend.io>
2026-06-05 13:39:14 +00:00
Jamie Tanna b0d84ad60a test(config/validation): explicitly check error/warning messages (#43799)
* test(config/validation): explicitly check error/warning messages

Previously, we had a number of tests checking for i.e.
`expect(warnings).toHaveLength(1);` which wouldn't necessarily be the
warning that we were expecting to see, nor would break if the message
changed (un)intentionally.

We can refactor this and:

- assert on the contents of `errors`/`warnings`
- check the `topic` only if it's interesting - for instance if it's a
  `Configuration Error`, but under `warnings`
- removed a `bumpVersion` test that doesn't make sense
- removed snapshot tests

This also reduces our usage of snapshot tests, as we're trying to remove
them where possible.

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

* test(config/validation): use `toBeEmptyArray`

As it's a little clearer when looking in the file, and asserts that it's
an array.

* test(config/validation): expect new validation errors

---------

Co-authored-by: Claude Opus 4.7 <jamie.tanna+claude-code@mend.io>
2026-06-05 09:36:11 +00:00
Jamie Tanna 7a87094daa test(config): ensure no default options require migrating (#43806)
As a follow-up to #43804, we can make sure that our configuration no
longer needs migrations.

If there are migrations needed, we can see the resulting configuration
and amend it.
2026-06-05 09:35:04 +00:00
renovate[bot] 059d4fe086 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.4 (main) (#43824)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.4

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.3 | 13.56.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-05 09:29:58 +00:00
Alberto Pose c91f9f3bc9 fix(config): remove deprecated rebaseStalePrs from lockFileMaintenance default (#43804)
* fix(config): drop removed rebaseStalePrs from lockFileMaintenance default

* fix(config): set rebaseWhen behind-base-branch in lockFileMaintenance default

The previous commit only removed rebaseStalePrs. Restore the default's
intent by setting its documented equivalent rebaseWhen: behind-base-branch
(the same mapping used by the rebaseStalePrs migration and the
:rebaseStalePrs preset).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(config): just remove deprecated rebaseStalePrs, no default change

Per maintainer feedback on the PR: keep this to removing the dead key
so lockFileMaintenance keeps tracking the global rebaseWhen default.
Revisit behind-base-branch in a future major.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 09:20:02 +00:00
Jamie Tanna 981df6afdb test(config/validation): remove untested bumpVersions code (#39710)
The test for this has been broken for some time, and only highlighted
when we start to look at the reason the test is failing - we're
providing a `bumpVersion` but we're intending it to be the
`bumpVersions` config.

Even if we fix the code, this then highlights that we have no validation
code in place, so the tests fail.

We'll follow-up to re-add validation in the future, but for now we can
remove a test that isn't testing what we're intending it to.
2026-06-04 20:57:34 +00:00
Jamie Tanna 83bba0e48a fix(config): clarify that bumpVersions.bumpType supports templating (#43805) 2026-06-04 17:10:51 +00:00
Jamie Tanna 309af5aac3 fix(config): mark relevant options with patternMatch (#43798)
As part of future changes, we want to perform strict validation on
the `allowedValues` for all config options as part of Config Validation.

Before we do this, per #40805, we should make sure that the config
options are all marked accordingly.

The list of relevant config options that support pattern matching has
been determined by Claude Opus.

Co-authored-by: Claude Opus 4.7 <jamie.tanna+claude-code@mend.io>
2026-06-04 17:10:26 +00:00
renovate[bot] 1a5025efb0 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.3 (main) (#43797)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.56.2 | 13.56.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-04 12:32:09 +00:00
Sullivan S. f60b6930bf feat(presets): stylelint packages group (#43351)
Stylelint come with two official config packages maintained separately.

However, some major release of one of the config packages require the
latest major release of the stylelint tool and vice versa.

On that case, Renovate will propose separated update merge requests that
will never be solvable because of dependencies conflict during npm
install.

Also, as stylelint is not a mono-repo and use a completly different
releases history from its related config package, we MUST ensure
major/minor separation is deactivated to get the group process working
correctly.
2026-06-04 08:46:30 +00:00
renovate[bot] 12b6f16691 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.2 (main) (#43752)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.56.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.55.5 | 13.56.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-04 04:57:53 +00:00
Sebastian Poxhofer c908d078ef fix(datasource): replace getJsonUnchecked in npm/Node/PyPI/Go (#43699)
* fix(datasource): replace getJsonUnchecked with validated getJson in npm/Node/PyPI/Go

Replace all getJsonUnchecked calls in npm, Node.js, PyPI, and Go datasources
with Zod-validated getJson calls:

- datasource/npm: add NpmResponseSchema to schema.ts (shared with presets)
- config/presets/npm: migrate to NpmResponseSchema with passthrough version fields
- datasource/node-version: add NodeReleasesSchema using LooseArray
- datasource/pypi: add PypiJSONSchema (nullable+catch for lenient empty-body handling)
- datasource/go: add VersionInfoSchema for both versionInfo and getLatestVersion calls

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

* some manual cleaning up

* removing schema level catch

* removing some more types

* refactor: rename schema

* fix linter errors

* remove schema suffix which hasn't been catched by linter

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 19:14:50 +00:00
Gregor Zeitlinger 0338dd74ba fix(mise): require allowlisting for lock updates (#43606)
* fix(mise): trust Renovate repo checkout during lock file updates

* docs(mise): document trusted config paths for lock updates

* refactor(mise): sanitize config files for lock updates

* test(mise): cover sanitized lock update flow

* docs(mise): describe sanitized lock update flow

* test(mise): cover sanitize failure paths

* fix(mise): clarify mirror read coverage

* fix(mise): allowlist mirrored settings

* test(mise): fix schema and integration specs

* fix(mise): trust only sanitized mirror workspace

* test(mise): fix mirrored cwd type narrowing

* test(mise): focus coverage on sanitized mirror flow

* test(mise): cover recursive settings schema

* fix(mise): ignore misreported lcov branch

* test(mise): remove redundant integration gate

* test(mise): drop local integration spec

* fix(mise): gate lock updates as unsafe execution

* fix(mise): restore settings schema typing

* fix(mise): generalize unsafe execution to mise

Rename allowedUnsafeExecutions value miseLock -> mise since any mise
command reading repo config can execute arbitrary code, not just
mise lock. Drop unused smol-toml dependency left over from the
abandoned config-sanitize approach.

Addresses PR review feedback.

* fix(mise): drop unused settings schema parsing

Nothing reads MiseFile.settings — the lock-update flow gates on
allowedUnsafeExecutions and relies on CI=true auto-trust, not config
sanitization. Remove the dead schema + tests per review.

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>

* fix(mise): trust repo config via trusted paths

* fix(mise): explicitly trust config before lock

---------

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
2026-06-03 16:17:46 +00:00
renovate[bot] 160e9f9bb8 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.55.6 (main) (#43751)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.55.6

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.55.4 | 13.55.6 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-03 04:25:49 +00:00
Jamie Tanna a9a47c3a6c fix(validation): allow globs and regexes in cacheTtlOverride (#43734)
This was a regression as part of
321965a7fa, which inadvertently made the
validation too strict.

We can make sure that we use the example config we use in our
documentation to indicate what should be possible.
2026-06-02 11:19:11 +00:00