As part of #41323, we noticed that the error that's thrown isn't super
helpful, as it doesn't include the environment variable name.
To improve this, we can wrap the `Error` with the environment variable
name that's in use, as well as the error message.
In the future we can improve this further.
* fix(workers/global): migrate string-based `repositoryCacheForceLocal`
For users who had previously set `RENOVATE_X_REPO_CACHE_FORCE_LOCAL` to
a non-empty string, we can make sure to auto-migrate them to the
expected value of `true`.
Because this is an environment variable, we cannot use a migration, and
so instead need to handle it when we're performing the manual migration.
* test(workers/global): clarify empty `X_REPO_CACHE_FORCE_LOCAL` does not get migrated
We've been happily using this with Mend Renovate Self-Hosted customers
since introduction in 2024, and so we're happy making this
non-experimental now.
This follows other changes where we've promoted an experimental option
to non-experimental, and heavily driven by Claude Sonnet 4.5.
We can also rename config item to use the same `repositoryCache` prefix.
Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
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.
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.
* 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
Use JSONC parser for JSON config files.
Renovate will now officially support JSONC syntax in config files which are either explicitly (e.g. `renovate.json`) or implicitly (e.g. `.renovaterc`) JSON files.
You may continue using "pure" JSON in such files, or use JSONC syntax instead (e.g. trailing commas, comments).
Support for files ending in `.jsonc` will be added soon.
Note: this is not technically a breaking change as it is backwards-compatible with existing JSON support.
Drops `allowCommandTemplating` so that templating is always allowed. Changes validation logic so that `allowedCommands` are now compared to the post-compiled command instead of pre-compiled.
BREAKING CHANGE: `allowedCommands` filters need to be updated to match against the post-compiled `postUpgradeCommands` in cases where templating was in use.
Rewrites `autodiscoverFilter` logic to use Renovate's "Glob or RegEx" syntax, allowing for negative matches to be combined.
BREAKING CHANGE: Syntax for autodiscoverFilter has been changed to allow for Glob, Regex, and negative matches.