Commit Graph

27161 Commits

Author SHA1 Message Date
Felipe Santos 0ad45c5484 feat(managers/mise): set depType for tools and task tools (#44868)
* feat(manager/mise): set depType for tools and task tools

Allow packageRules to match mise deps via matchDepTypes:
- tools for top-level [tools]
- task-tools for tasks.*.tools

* test(manager/mise): override RUST_197 depType in task extract cases

* Make the task tool dynamic

* Restore formatting

* Restore another formatting
43.285.0
2026-07-27 16:33:42 +00:00
Sergei Zharinov 3f46080376 fix(post-upgrade): skip executable detection for directories (#44884)
* fix(post-upgrade): skip executable detection for directories

* test(post-upgrade): use generic submodule fixture
43.284.1
2026-07-27 14:38:37 +00:00
Felipe Santos 27b4832227 chore(vscode): enable TypeScript 7 (#44883) 2026-07-27 12:52:32 +00:00
Gregor Zeitlinger 7700d62238 feat(github-actions): update mise checksums (#44876)
* fix(github-actions): update mise checksums

* test(github-actions): reject uppercase mise checksums
43.284.0
2026-07-27 11:34:46 +00:00
Jamie Tanna a44bbfadcf test(util/git): reference default branch (#44877)
Otherwise this sometimes fails when a repository uses
`init.defaultBranch=main`.
2026-07-27 10:45:06 +00:00
Felipe Santos ddbbb687f9 feat: add commitTrailers option (#44651)
* feat(config): add commitTrailers option

Renovate's only way to add git trailers today is `commitBody`, but it's
broken on Gerrit: Renovate appends its own `Renovate-Branch`/`Change-Id`
block after the body, so user trailers end up in a non-final message
block and are not real trailers per git-interpret-trailers rules.

This adds a `commitTrailers: string[]` option (each entry a full
`Key: value` line), standardizes Gerrit's own trailers through the same
mechanism so user trailers and platform trailers merge into one final
block, and verifies the result at runtime with `git interpret-trailers`
(commitlint's trailer-exists rule uses the same approach). The
`:gitSignOff` preset is migrated from `commitBody` to `commitTrailers`
so sign-off works correctly on Gerrit too.

* Simplify a bit

* Simplify docs even more

* Simplify another bit

* Add comment about rawExec

* Drop runtime commit trailer verification

Bypass simple-git only to emit a proactive warn log is not worth the
extra surface area. Config validation already enforces Key: value form.

* test(git): cover string commit message with trailers

Codecov patch failed on the partial ternary branch that normalizes a
string message before appending trailers.

* test(gerrit): fix trailers test after scm rework

Align the commitTrailers merge test with the post-rework Gerrit SCM:
use fakeSha helpers and drop the removed force flag.

* Improve wording on gitSignOff docs

* Validate compiled commitTrailers as well

* Improve trailers example

* Use isString instead

* Update lib/util/git/index.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Update lib/workers/repository/onboarding/branch/create.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Format code

* Fix type-check

* Fix tests

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
43.283.0
2026-07-27 06:49:09 +00:00
renovate[bot] 8971306954 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.7 (main) (#44872)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.7

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.6 | 13.77.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.282.0
2026-07-27 06:30:07 +00:00
jdx 94f0219613 feat(manager/mise): run mise lock in safe mode without allowedUnsafeExecutions (#44749)
* feat(manager/mise): run mise lock in safe mode without allowedUnsafeExecutions

When `constraints.mise` pins a version that supports mise safe mode
(`MISE_SAFE=1`), run `mise lock` with safe mode enabled instead of
requiring `mise` in `allowedUnsafeExecutions`. Safe mode is a hard
boundary against project config executing code (templates exec/read_file,
_.source, hooks, tasks, asdf scripts, plugin installs are all refused),
so it — not the allowlist — protects the host.

The existing allowlisted path is unchanged: allowlisted repos run
`mise lock` exactly as before, without forcing safe mode, so configs
that legitimately execute code during locking keep working.

Safe mode also removes the need to pre-install node/npm/golang/ruby as
resolver tools, since npm version listing uses mise's built-in registry
HTTP client and go runs with GOTOOLCHAIN=local.

Refs: jdx/mise#11146 (safe mode), jdx/mise#11145 (lock --bump)

* fix: address oxlint and pin safe-mode min version to 2026.7.12

- logger.warn requires a static message with interpolated values in the
  metadata object (oxlint rule); move the version into metadata
- set MISE_SAFE_MODE_MIN_VERSION to 2026.7.12, the expected first release
  containing safe mode (merged after v2026.7.11)

* feat(manager/mise): use mise lock --bump for lock file maintenance

lockFileMaintenance means "update to the latest versions", but plain
`mise lock` only refreshes metadata for already-locked versions. Use
`mise lock --bump` so fuzzy selectors (e.g. node = "22") advance to the
latest matching version. `--bump` requires the same minimum mise version
as safe mode, so it is gated on the mise constraint and falls back to a
plain refresh otherwise.

Generalizes the version-gate helper (miseConstraintGuarantees) shared by
safe mode and --bump.

* refactor(manager/mise): detect mise version at runtime instead of via constraints

Determine safe-mode / --bump support by running `mise version` (which
does not load or execute project config) rather than requiring a pinned
`constraints.mise`. This works off whatever mise is actually installed,
so no extra configuration is needed.

The probe is skipped on the allowlisted, non-maintenance path, where the
version cannot change the outcome — keeping that hot path unchanged.

* feat(manager/mise): skip mise trust in safe mode

Safe mode now makes an untrusted config fully inert and no longer
requires trust to load it (jdx/mise#11151), so on the safe-mode path
`mise trust` is unnecessary and is skipped — `mise lock` runs with
`MISE_SAFE=1` alone. The allowlisted path is unchanged and still runs
`mise trust`.

* feat(manager/mise): confirm safe mode min version against v2026.7.12 release

MISE_SAFE=1 safe mode and `mise lock --bump` first shipped in mise
v2026.7.12 (released 2026-07-23), confirming the assumed
MISE_SAFE_MODE_MIN_VERSION. Resolve the pending-release TODO and align
the test version fixture with the real release date.

Validated end-to-end against the real v2026.7.12 binary: `mise version`
output matches the parser, `MISE_SAFE=1 mise lock` refreshes an untrusted
config without trust, `mise lock --bump` advances fuzzy selectors, and
project [env] is ignored under safe mode.

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

* test(manager/mise): cover mise version probe failure path

Add a test for the detectMiseVersion catch branch (exec throwing), so the
non-allowlisted path falls back to conservative behavior. Restores 100%
patch coverage for the mise manager.

* Update lib/modules/manager/mise/readme.md

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* Update lib/modules/manager/mise/readme.md

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* docs(mise): fix safe mode section link

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-07-27 06:26:22 +00:00
renovate[bot] c15ebab6c2 chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.12 (main) (#44871)
chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.12

| datasource | package                            | from     | to       |
| ---------- | ---------------------------------- | -------- | -------- |
| docker     | ghcr.io/containerbase/devcontainer | 14.13.11 | 14.13.12 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 05:30:09 +00:00
renovate[bot] 5c7f980ea6 docs: update references to renovatebot/github-action to v46.1.21 (main) (#44870)
docs: update references to renovatebot/github-action to v46.1.21

| datasource  | package                   | from     | to       |
| ----------- | ------------------------- | -------- | -------- |
| github-tags | renovatebot/github-action | v46.1.20 | v46.1.21 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 03:30:25 +00:00
renovate[bot] 8333627c1f chore(deps): update dependency @smithy/util-stream to v4.7.10 (main) (#44804)
chore(deps): update dependency @smithy/util-stream to v4.7.10

| datasource | package             | from  | to     |
| ---------- | ------------------- | ----- | ------ |
| npm        | @smithy/util-stream | 4.7.9 | 4.7.10 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 03:29:40 +00:00
renovate[bot] 2249f8628d chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.11 (main) (#44869)
chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.11

| datasource | package                            | from     | to       |
| ---------- | ---------------------------------- | -------- | -------- |
| docker     | ghcr.io/containerbase/devcontainer | 14.13.10 | 14.13.11 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 03:29:31 +00:00
renovate[bot] 34e99c60e9 chore(deps): lock file maintenance (main) (#44867)
chore(deps): lock file maintenance

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 02:30:17 +00:00
renovate[bot] 1cae2cc16d docs: update references to otel/opentelemetry-collector-contrib to v0.157.0 (main) (#44865)
docs: update references to otel/opentelemetry-collector-contrib to v0.157.0

| datasource | package                              | from    | to      |
| ---------- | ------------------------------------ | ------- | ------- |
| docker     | otel/opentelemetry-collector-contrib | 0.156.0 | 0.157.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 01:32:20 +00:00
renovate[bot] 011c0b4890 docs: update references to renovate/renovate (main) (#44866)
docs: update references to renovate/renovate

| datasource | package           | from     | to       |
| ---------- | ----------------- | -------- | -------- |
| docker     | renovate/renovate | 43.272.0 | 43.281.1 |
| docker     | renovate/renovate | 43.272   | 43.281   |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 01:29:19 +00:00
renovate[bot] 20a51f8734 docs: update references to jaegertracing/jaeger to v2.20.0 (main) (#44864)
docs: update references to jaegertracing/jaeger to v2.20.0

| datasource | package              | from   | to     |
| ---------- | -------------------- | ------ | ------ |
| docker     | jaegertracing/jaeger | 2.19.0 | 2.20.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 00:27:54 +00:00
renovate[bot] f9532ad1db docs: update references to python to 5f1cdbc (main) (#44863)
docs: update references to python to 5f1cdbc

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-27 00:26:59 +00:00
renovate[bot] d7010066a2 chore(deps): update dependency pnpm to v11.15.1 (main) (#44862)
chore(deps): update dependency pnpm to v11.15.1

| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| npm        | pnpm    | 11.15.0 | 11.15.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-26 23:27:43 +00:00
renovate[bot] 9d3b990782 chore(deps): update dependency tsdown to v0.22.12 (main) (#44861)
chore(deps): update dependency tsdown to v0.22.12

| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| npm        | tsdown  | 0.22.11 | 0.22.12 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-26 19:27:42 +00:00
renovate[bot] 866dd5668e fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.6 (main) (#44860)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.6

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.5 | 13.77.6 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.281.1
2026-07-26 18:27:56 +00:00
renovate[bot] 1d8c976c17 chore(deps): update dependency tsdown to v0.22.11 (main) (#44857)
chore(deps): update dependency tsdown to v0.22.11

| datasource | package | from   | to      |
| ---------- | ------- | ------ | ------- |
| npm        | tsdown  | 0.22.9 | 0.22.11 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-26 14:28:15 +00:00
github-actions[bot] bd8f8851dd feat(data): automatic update of static data (#44850)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
43.281.0
2026-07-26 06:49:42 +00:00
Vincent Pizzo 12b2f4f405 fix(platform/gitlab): retry MR creation on transient source_branch race. (#44502)
fix(platform/gitlab): retry MR creation on transient source_branch race

GitLab occasionally rejects a merge request POST with
`400 {"message":{"source_branch":["does not exist"]}}` immediately after
a branch push succeeds, because the freshly pushed ref is not yet visible
to the API due to Gitaly eventual consistency. The request was not
retried, leaving an orphaned branch until the next run.

Extend the existing `calculateRetryDelay` hook (which already retries
transient `409 Resource lock` POST errors) to also retry this
`400 source_branch does not exist` case, reusing got's bounded
exponential backoff.
43.280.5
2026-07-25 18:42:41 +00:00
Sebastian Poxhofer 716baf630b fix(linters): add rules for filesystem helpers and Date (#44685)
* feat(lint): add renovate/prefer-fs-util and renovate/prefer-luxon rules

Two shared-util substitution rules, both at warn level:

- renovate/prefer-fs-util flags value imports of fs, node:fs,
  fs/promises, node:fs/promises, fs-extra and fs-extra/esm in lib/
  source files outside lib/util/fs/, pointing to the scoped helpers
  from lib/util/fs. Spec files and type-only imports are exempt.
  A config-only change via no-restricted-imports was considered but
  rejected: that rule is at error severity globally and per-path warn
  severity is not expressible, so the 13 existing call sites would
  break the baseline.

- renovate/prefer-luxon flags new Date(...) and Date.now() in lib/
  source files, pointing to Luxon per best-practices. Date/time
  utility modules (lib/util/date, lib/util/pretty-time,
  lib/util/timestamp) and spec files (vi.setSystemTime etc.) are
  exempt.

Baseline: 13 prefer-fs-util and 45 prefer-luxon warnings, zero errors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor: use Luxon instead of new Date() at remaining call sites

Fixes all renovate/prefer-luxon violations for `new Date(...)`:

- `new Date().toISOString()` -> `DateTime.utc().toISO()` (byte-identical
  output) in the http cache provider, schedule logging and PR cache.
- `new Date()` -> `DateTime.now().toJSDate()` for the git commit-date
  fallback and the rubygems `syncedAt` markers (same `Date` values).
- rust-release-channel now computes the Rust 1.0 release date and nightly
  version dates via `DateTime.utc(...)`; previously `new Date(y, m, d)`
  used the local timezone while the epoch used UTC, so the comparison was
  timezone-dependent at the boundary date. Tests run with TZ=UTC, where
  behavior is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor: use lib/util/fs helpers in repository worker

Fixes renovate/prefer-fs-util violations outside bootstrap code:

- `fs.ensureDir()` -> `ensureDir()` from lib/util/fs (same fs-extra call
  underneath; it no-ops on an empty dir name, so the repository worker
  spec now simulates the init failure via a rejected `initRepo` instead
  of relying on `fs.ensureDir('')` throwing).
- `fs.remove(privateCacheDir())` -> `cachePathExists()` + `rmCache()`,
  keeping the remove-if-present semantics while asserting cacheDir
  containment.

Two call sites keep raw imports with reasoned disable comments:

- lib/util/modules.ts synchronously enumerates Renovate's own installed
  module directories at import time.
- lib/util/cache/package/impl/sqlite.ts receives cacheDir as an explicit
  argument during global initialization, before GlobalConfig (which the
  scoped cache helpers resolve against) contains cacheDir.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(lint): promote prefer-fs-util and prefer-luxon to error

Both rules are narrowed to what is actually accepted practice before
being promoted:

prefer-luxon no longer flags `Date.now()`: it returns UTC-based epoch
milliseconds used for elapsed-time measurement and TTL arithmetic, which
is timezone-independent by construction. The mined reviewer feedback
behind this rule ("use Luxon for date arithmetic outside util") targets
timezone-dependent date construction/formatting, which cannot occur with
a raw millis number; the rule keeps flagging `new Date(...)`.

prefer-fs-util exempts code that legitimately needs raw fs access
because the scoped lib/util/fs helpers resolve against GlobalConfig
localDir/cacheDir, which does not exist yet or does not apply there:

- lib/logger/: log-file streams at user-configured system paths during
  bootstrap; lib/util/fs also depends on the logger (import cycle).
- lib/workers/global/: creates baseDir/cacheDir themselves and
  reads/writes user-supplied paths before GlobalConfig is seeded.
- lib/config-validator.ts: standalone CLI without GlobalConfig.
- lib/util/git/: owns the localDir lifecycle (clone, emptyDir, symlinks)
  and private-key files with sync cleanup on process exit.

Also fixes a pre-existing tsc error in prefer-fs-util.js: `importKind`
is a TypeScript-ESTree extension missing from eslint's base AST types.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(fs): make rmCache ignore missing paths

All rmCache callers use it for cleanup, where a missing path is a
no-op, so bake force: true in instead of guarding call sites with
an existence check.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(linters): exempt lib/instrumentation from prefer-fs-util

`lib/instrumentation/file-exporter.ts` landed on main while this branch
was open and imports `node:fs/promises` directly.

The exporter writes to a user-configured system path
(`RENOVATE_TRACING_FILE_EXPORTER_PATH`) outside `localDir`/`cacheDir`,
so the scoped helpers do not apply. `lib/instrumentation` is also
deliberately kept out of the module graph of instrumented libraries
(see the `⚠️` note in `lib/renovate.ts`), so it must not pull in
`lib/util/fs` and its config/logger dependencies. Exempt the directory,
as is already done for `lib/logger`.

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

* docs: shorten doc

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 16:00:44 +00:00
Jamie Tanna 927b094344 refactor(workers/repository): extract minimumReleaseAge/minimumConfidence checks (#44825)
As part of follow-up changes, we'll need to call the checks in multiple
places, so should prefactor these into helper methods.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-07-25 16:00:26 +00:00
renovate[bot] be2ff0d0e9 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.5 (main) (#44842)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.5

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.4 | 13.77.5 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-25 15:59:51 +00:00
renovate[bot] 439bdd2ddb chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.10 (main) (#44841)
chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v14.13.10

| datasource | package                            | from    | to       |
| ---------- | ---------------------------------- | ------- | -------- |
| docker     | ghcr.io/containerbase/devcontainer | 14.13.9 | 14.13.10 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-25 15:59:40 +00:00
Sebastian Poxhofer c99196de0f ci: do not verfiy lockfile policies on matrix run (#44847) 2026-07-25 15:40:55 +00:00
renovate[bot] d610624b00 chore(deps): update dependency lint-staged to v17.1.0 (main) (#44845)
chore(deps): update dependency lint-staged to v17.1.0

| datasource | package     | from   | to     |
| ---------- | ----------- | ------ | ------ |
| npm        | lint-staged | 17.0.8 | 17.1.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-25 14:29:41 +00:00
renovate[bot] 510a850b7e chore(deps): update dependency pnpm to v11.15.0 (main) (#44844)
chore(deps): update dependency pnpm to v11.15.0

| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| npm        | pnpm    | 11.14.0 | 11.15.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-25 13:29:32 +00:00
renovate[bot] 53223e3706 build(deps): update dependency semantic-release to v25.0.8 (main) (#44840)
build(deps): update dependency semantic-release to v25.0.8

| datasource | package          | from   | to     |
| ---------- | ---------------- | ------ | ------ |
| npm        | semantic-release | 25.0.7 | 25.0.8 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.280.4
2026-07-25 00:30:08 +00:00
renovate[bot] 04930f4dc7 chore(deps): update dependency pnpm to v11.14.0 (main) (#44839)
chore(deps): update dependency pnpm to v11.14.0

| datasource | package | from    | to      |
| ---------- | ------- | ------- | ------- |
| npm        | pnpm    | 11.13.1 | 11.14.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 22:33:55 +00:00
renovate[bot] 4f9359ae5b chore(deps): update dependency tar to v7.5.21 [security] (main) (#44838)
chore(deps): update dependency tar to v7.5.21 [security]

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | tar     | 7.5.20 | 7.5.21 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 20:52:27 +00:00
renovate[bot] 5a1925feea chore(deps): update jdx/mise-action action to v4.2.3 (main) (#44836)
chore(deps): update jdx/mise-action action to v4.2.3

| datasource  | package         | from   | to     |
| ----------- | --------------- | ------ | ------ |
| github-tags | jdx/mise-action | v4.2.2 | v4.2.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.280.3
2026-07-24 20:37:08 +00:00
renovate[bot] 558fb51c17 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.4 (main) (#44837)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.4

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.3 | 13.77.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 20:33:04 +00:00
Jamie Tanna f1cd516513 refactor(workers/repository): add isMinimumReleaseAgeApplicable/isMinimumConfidenceApplicable (#44824)
As part of follow-up changes, we'll use these functions to centrally
determine as to whether to execute `minimumReleaseAge` or
`minimumConfidence` checks against a given updateType.

For now, we can wire this into our documentation tests, to make sure
that this stays in sync with `isMinimumReleaseAgeApplicable`.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-07-24 16:22:00 +00:00
Micah Nagel c33364d126 fix(presets/helpers): ensure that pinGitHubActionDigestsToSemver preset only applies to actions (#44830)
fix: ensure that pinGitHubActionDigestsToSemver preset only applies to actions

Signed-off-by: Micah Nagel <micah.nagel@defenseunicorns.com>
43.280.2
2026-07-24 13:58:35 +00:00
renovate[bot] 5c316bee3b fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.3 (main) (#44829)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.2 | 13.77.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.280.1
2026-07-24 13:35:16 +00:00
renovate[bot] 98d45b7426 chore(deps): update jdx/mise-action action to v4.2.2 (main) (#44826)
chore(deps): update jdx/mise-action action to v4.2.2

| datasource  | package         | from   | to     |
| ----------- | --------------- | ------ | ------ |
| github-tags | jdx/mise-action | v4.2.1 | v4.2.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 11:33:30 +00:00
Jamie Tanna 52fc54782c docs(minimum-release-age): correctly reference lockfileUpdate (#44823)
As it's lowercase.
2026-07-24 10:30:38 +00:00
Jamie Tanna f7bf437dcf docs(minimum-release-age): indicate which Datasources support releaseTimestamp (#44822)
As noted in #30714, and to make the Minimum Release Age page a
"one-stop-shop", we can generate the documentation accordingly.

Using an orange "maybe" for support helps nudge folks to checking which
registry they're using, and noting that it still doesn't necessarily
work, even if the Datasource supports it.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-07-24 10:02:37 +00:00
Jamie Tanna 6e15862584 docs(minimum-release-age): link to separate issue for pinDigest (#44821) 43.280.0 2026-07-24 09:50:35 +00:00
RahulGautamSingh e0714e0d23 feat(azure): make issue work item type configurable (#44736)
* feat(azure): make issue work item type configurable

* move azureWorkItemType to Config

* fix type

* add docs url using productLinks

* apply suggestions

* Update lib/modules/platform/azure/issue.ts

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>

* fix ci + doc addition

* fix docs lint

---------

Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2026-07-24 09:19:11 +00:00
Anand Kumria 3cba608bb1 fix(git): surface GitHub GH013 ruleset rejections as config errors (#44819)
When GitHub returns 'GH013: Repository rule violations found' during
a push, the failure is currently silently swallowed by handleCommitError
whenever the changeset touches a file under .github/workflows/. The
existing swallow was intended for the narrow case of an App token
missing the 'workflows' scope, but it also masks unrelated ruleset
violations such as:

  - GITHUB PUSH PROTECTION 'File path is restricted'
  - Secret scanning push protection
  - Signed commit / branch-naming / tag-deletion rulesets

Self-hosted operators cannot see these failures in aggregated log
reports because Renovate logs at info level, marks the branch as
aborted, and continues. Repositories that are effectively 100%
blocked by a ruleset appear healthy.

Detect the 'GH013' token before the workflow-files silent-swallow and
throw a CONFIG_VALIDATION error - mirroring the treatment already
applied to GH003 (force-push denied) and 'protected branch hook
declined'. This flags the repository as failing, populates
validationError / validationMessage so the failure reason is visible
in the repository summary, and lets any downstream reporting pick it
up as a real failure instead of an info-level abort.

Adds tests to lib/util/git/errors.spec.ts covering:

  1. A GH013 Push Protection error whose changeset is entirely under
     .github/workflows/ is thrown as CONFIG_VALIDATION with the
     expected validationSource / validationError / validationMessage.

  2. A generic non-GH013 workflow-file remote rejection still returns
     null (existing swallow behaviour preserved).
43.279.2
2026-07-24 09:08:04 +00:00
renovate[bot] ee7285afa7 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.2 (main) (#44816)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.77.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.77.0 | 13.77.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
43.279.1
2026-07-24 04:28:16 +00:00
renovate[bot] 6026442bbb chore(deps): update dependency uv to v0.11.32 (main) (#44815)
chore(deps): update dependency uv to v0.11.32

| datasource      | package      | from    | to      |
| --------------- | ------------ | ------- | ------- |
| github-releases | astral-sh/uv | 0.11.31 | 0.11.32 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 01:30:24 +00:00
renovate[bot] 3ecb103779 chore(deps): update dependency markdownlint-cli2 to v0.23.1 (main) (#44814)
chore(deps): update dependency markdownlint-cli2 to v0.23.1

| datasource | package           | from   | to     |
| ---------- | ----------------- | ------ | ------ |
| npm        | markdownlint-cli2 | 0.23.0 | 0.23.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 00:31:30 +00:00
renovate[bot] d9f44927b3 chore(deps): update dependency astral-sh/uv to v0.11.32 (main) (#44813)
chore(deps): update dependency astral-sh/uv to v0.11.32

| datasource      | package      | from    | to      |
| --------------- | ------------ | ------- | ------- |
| github-releases | astral-sh/uv | 0.11.31 | 0.11.32 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-24 00:30:13 +00:00
renovate[bot] bc8843ef2e chore(deps): update zizmor (main) (#44812)
chore(deps): update zizmor

| datasource  | package                   | from   | to     |
| ----------- | ------------------------- | ------ | ------ |
| docker      | ghcr.io/zizmorcore/zizmor | 1.27.0 | 1.28.0 |
| github-tags | zizmorcore/zizmor-action  | v0.6.0 | v0.6.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-23 21:45:18 +00:00
renovate[bot] 9a48b6871a chore(deps): update ossf/scorecard-action action to v2.4.4 (main) (#44811)
chore(deps): update ossf/scorecard-action action to v2.4.4

| datasource  | package               | from   | to     |
| ----------- | --------------------- | ------ | ------ |
| github-tags | ossf/scorecard-action | v2.4.3 | v2.4.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-23 21:30:56 +00:00