Commit Graph

14403 Commits

Author SHA1 Message Date
Jamie Tanna 15d541461b refactor(manager): add utility for creating Artifact Error messages (#45218)
* refactor(manager); add utility for creating Artifact Error messages

To prevent ignoring linting rules for nullish coalescing, as well as for
future changes that will use this helper, we can extract out a helper
function for this.

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

* fixup! refactor(manager); add utility for creating Artifact Error messages

---------

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-08-11 10:18:20 +00:00
Bartosz Dolewski d735b9b6b8 fix(swift): support Package Registry pins in Package.resolved (#44358)
* fix(swift): allow Package.resolved pins without a `revision`

The swift manager's Package.resolved Zod schema requires
`state.revision: z.string()` on every pin. That is correct for
source-control pins (`kind: "remoteSourceControl"`), which always
have a git commit SHA, but wrong for SwiftPM Package Registry pins
(`kind: "registry"`) introduced by SE-0292: registry packages are
identified by a version alone and have no revision. As a result,
any Package.resolved that mixes source-control and registry pins
fails `PackageResolvedJson.safeParse`, `updateArtifacts` logs
`swift: could not parse Package.resolved` and returns `null`, and
Renovate silently stops writing lockfile updates on that repository.

This makes `state.revision` optional in the pin schema. The existing
`updateArtifacts` logic already guards the revision-replacement
branch with `if (newRevision)`, so registry pins are still safely
left untouched during source-control dep bumps.

Adds a regression test with a mixed-pins fixture. Before this change
that test panicked at parse time; after the change it demonstrates
the source-control pin gets updated and the registry pin is preserved
without gaining a spurious revision field.

Refs: #41534 (initial Package.resolved support, tested with
source-control pins only), #42303 (from: prefix strip).

* test(manager/swift): address review feedback on mixed-pins test

Per review on the Package.resolved mixed source-control/registry pins
test: inline the fixture into the test body, trim the comment to a
concise regression note, and assert on the parsed JSON with
toMatchObject instead of substring matching.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

* test(manager/swift): assert full updateArtifacts result for mixed pins

Per review: replace the parse/find/toMatchObject assertions with a
single resolves.toEqual on the whole updateArtifacts result, comparing
against the expected Package.resolved output directly.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

* test(manager/swift): trim mixed-pins regression comment

Apply review suggestion to shorten the comment to a single line.

Co-Authored-By: Claude (Cricut Security policy) <noreply@anthropic.com>

---------

Co-authored-by: Claude (Cricut Security policy) <noreply@anthropic.com>
2026-08-11 06:26:37 +00:00
palakkhinvasara 728ce9752e fix: keep HTTPS when resolving same origin URLs (#45157)
* pushing

* pushing

* pushing

* pushing

* pushing
2026-08-11 06:14:50 +00:00
renovate[bot] f4f7ea1d73 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.1 (main) (#45209)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.84.0 | 13.84.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-11 05:27:46 +00:00
user_9090 65ee1f18b4 feat: add regex support for gitIgnoredAuthors configuration (#43938)
* feat: add regex support for gitIgnoredAuthors configuration

* feat: add tests for gitIgnoredAuthors regex handling in isBranchModified

* refactor: simplify ignored authors matching in isBranchModified function

* refactor: use for-of loop for ignored author filtering

* fix(git): treat non-regex gitIgnoredAuthors as exact strings

* fix(git): remove duplicate import of matchRegexOrGlobList

* fix(git): reorder import statements for consistency

* feat(git): enhance gitIgnoredAuthors handling with regex validation and logging

* feat(git): enhance gitIgnoredAuthors support for glob patterns and improve regex handling

* fix(git): add support for escaped glob patterns in matchRegexOrGlobList

* feat(git): update gitIgnoredAuthors documentation and improve regex handling for glob patterns

* fix(git): improve escaping of brackets and backslashes in glob pattern handling

* feat(git): normalize GitHub bot email addresses in ignored authors handling

* feat(tests): add custom author with brackets to file list in index.spec.ts

* feat(git): refactor ignored author handling to support regex normalization

* feat(git): enhance ignored authors handling to support regex patterns

* chore: retrigger ci
2026-08-10 21:41:40 +00:00
Beto Aveiga a84e007f46 feat(vulnerabilities): match OSV Packagist sub-ecosystems (#45203)
Allow osvVulnerabilityAlerts to match OSV sub-ecosystems such as
Packagist:https://packages.drupal.org/8, based on #40004. Adds a
negative test so unrelated prefixes like PackagistSomething do not match.

Co-authored-by: Stephan Zeidler <stephan@ramsalt.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 16:28:55 +00:00
Johannes Obermair b9b2755685 feat(replacements): add replacements for dev-facing Comet packages (#45112)
* feat(replacements): add replacements for dev-facing Comet packages

* fix: add current version matcher to rules

* fix: change dev-process-manager current version to >=3.0.0
2026-08-10 16:25:37 +00:00
Sebastian Poxhofer 4adc8f3725 fix(cargo): support fetching crates from git monorepo (#45142) 2026-08-10 14:30:10 +00:00
Jamie Tanna 7f40d43179 refactor(workers/repository): allow managers to opt out of digest pinning (#45198)
As part of future changes in #45190, we have found that when using
GitHub Actions' dependency lockfile, the digest pinning is manged by the
lockfile, rather than being specified in the package file itself.

To avoid a "flip flop" where using the manager removes the digest from
the package file (relying on the lockfile itself) and then a `pinDigest`
update re-adds it to the package file, we can instead follow how
`digestOneAndOnly` works and add a means to note
`digestManagedExternally`.

This isn't currently used, but allows an opt out for github-actions in
the future.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-08-10 13:56:23 +00:00
Jamie Tanna 45372476c8 feat(util/exec): add support for gh tool (#45192)
* feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.83.0 | 13.84.0 |

* feat(util/exec): add support for `gh` tool

As a prerequisite for #44753 and #45190, we need to support the `gh`
CLI.

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 13:55:09 +00:00
renovate[bot] 197ad00289 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0 (main) (#45197)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.84.0

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.83.0 | 13.84.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 13:19:59 +00:00
renovate[bot] 63f9e20779 feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.83.0 (main) (#45195)
feat(deps): update ghcr.io/renovatebot/base-image docker tag to v13.83.0

| datasource | package                        | from     | to      |
| ---------- | ------------------------------ | -------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.11 | 13.83.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 12:06:59 +00:00
Sergei Zharinov cca6227dfa fix(git): resolve child env before adding authentication (#45184)
* fix(git): preserve approved runtime config with authentication

* test(git): remove redundant authentication cases

* test(git): update post-upgrade environment assertions

* test(hermit): cover uninstall setup failure

* refactor(git): clarify authentication host types

* refactor(git): coerce exec options

* refactor(git): coerce docker env vars

* refactor(exec): coerce docker env vars
2026-08-10 11:54:18 +00:00
Sebastian Poxhofer 1f6546b7a9 fix(versioning/cargo): convert ranges to semver in subset and intersects (#45146)
`cargo2npm` exists because a bare `1.2.3` in Cargo means `^1.2.3` and
`0.4` means `^0.4`, since caret requirements are the default. Every
range-consuming function in this module converts through it: `isValid`,
`matches`, `isLessThanRange`, `getSatisfyingVersion`,
`minSatisfyingVersion` and `getNewValue`.

`subset` and `intersects` did not. The exported `api` is built from a
`...npm` spread and never overrode them, so they received Cargo syntax
and interpreted it as semver syntax. Read that way, `1.70` means
`1.70.x` rather than `^1.70`:

    subset('1.70', '1.63')      was false, is now true
    intersects('1.70', '1.63')  was false, is now true
    intersects('1.63', '1.70')  was false, is now true

`subset` is called by `applyConstraintsFiltering`, so repositories using
`constraintsFiltering: 'strict'` had crate releases dropped whenever the
release constraint differed from the configured one. `intersects` has no
caller in this repository today, but it is part of `VersioningApi` and
was wrong in the same way.

Both are now wrapped the way `composer` does it, including the
`try`/`catch`, because the underlying semver calls throw on ranges they
cannot parse.

The module had no tests for either function, which is why this was not
caught. Both are now covered, including the throwing path.
2026-08-10 11:03:19 +00:00
Sebastian Poxhofer a2d1b8cf0a fix(manager/asdf,mise,proto): use rust-version datasource for rust (#45143)
The `rust` tool was resolved via the `github-tags` datasource on
`rust-lang/rust` with the default (semver) versioning. That meant the
release channel values rustup actually accepts were not understood.

Switch all three managers to the `rust-version` datasource, which
declares `rust-release-channel` as its `defaultVersioning`, matching the
`rust-toolchain` manager and `lib/util/exec/containerbase.ts`.

`packageName` becomes `rust` rather than the `rust-lang/rust` owner/repo
slug, which is meaningless for this datasource. It is set rather than
omitted because mise would otherwise fall back to the backend-prefixed
depName, yielding `core:rust` / `asdf:rust` as the package name.

No explicit `versioning` is set: the datasource default already applies,
and the convention in these files is to set `versioning` only to
override a datasource default.

Behaviour change: `nightly-<date>` pins were previously skipped as
`invalid-value` and now update. `stable`, `beta` and `nightly` are now
recognised as ranges rather than flagged invalid, but still only resolve
to a concrete version under `rangeStrategy: pin`.
2026-08-10 07:54:37 +00:00
Sebastian Poxhofer 183ee9caac fix(manager/rust-toolchain): report skipReason instead of dropping deps (#45144)
The manager emitted `logger.warn` four times during extraction and
returned `null` for content that is valid but not updatable. A
`rust-toolchain.toml` using `path` instead of `channel` is a legitimate
file, yet it failed schema validation and produced a maintainer-facing
warning.

Per the logging guidance in `docs/development/best-practices.md`, WARN
is consumed by metrics and error catching services, so it should not
fire for user content Renovate simply cannot update. The manager guide
also asks for a `skipReason` rather than silently dropping a dependency.

The schema now accepts an optional `channel` and an optional `path`, and
extraction reports:

- `invalid-version` when a channel cannot be parsed
- `path-dependency` when the file points at a local toolchain
- `unspecified-version` when neither field is set

`channel` takes precedence when both are present, since rustup rejects
that combination and `channel` is the actionable field.

Files that are not toolchain files at all still return `null`: TOML that
does not parse, TOML without a `[toolchain]` table, and legacy plain
text files that are empty or hold more than one line. The file pattern
matches any file named `rust-toolchain`, so these are treated as false
matches. All remaining logs are DEBUG.
2026-08-10 07:52:31 +00:00
renovate[bot] 44e862a926 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.11 (main) (#45187)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.11

| datasource | package                        | from     | to       |
| ---------- | ------------------------------ | -------- | -------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.10 | 13.82.11 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 05:28:15 +00:00
renovate[bot] 5ca534a0c8 docs: update references to python to 3a9d2dd (main) (#45179)
docs: update references to python to 3a9d2dd

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 00:26:08 +00:00
renovate[bot] ef843fd3e1 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.10 (main) (#45175)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.10

| datasource | package                        | from    | to       |
| ---------- | ------------------------------ | ------- | -------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.9 | 13.82.10 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-09 18:26:22 +00:00
Birger Johan Nordølum a484d01201 feat(presets): add replacement for deprecated password pusher images (#45172)
* feat: replace deprecated Password Pusher images

* fix: target final Password Pusher legacy release

* feat: add Password Pusher migration guidance
2026-08-09 15:40:06 +00:00
benmelz 42cd249823 fix(presets/monorepo): add new datatables.net source repos (#45090)
add new source urls
2026-08-09 09:24:12 +00:00
Jonah Snider e869eecc4d feat(presets): add Flue monorepo (#45137)
Signed-off-by: Jonah Snider <jonah@jonahsnider.com>
2026-08-09 09:09:57 +00:00
github-actions[bot] 25a09ecb7e feat(data): automatic update of static data (#45163)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-09 08:17:28 +00:00
renovate[bot] 1b99a61a38 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.9 (main) (#45156)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.9

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.8 | 13.82.9 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-08 15:26:50 +00:00
renovate[bot] 952ec8d366 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.8 (main) (#45150)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.8

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.7 | 13.82.8 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-08 01:27:09 +00:00
renovate[bot] f306402533 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.7 (main) (#45149)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.7

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.6 | 13.82.7 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-08 00:27:28 +00:00
renovate[bot] 84ef069a60 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.6 (main) (#45147)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.6

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.5 | 13.82.6 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-07 23:27:28 +00:00
renovate[bot] ee9e688256 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.5 (main) (#45141)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.5

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.4 | 13.82.5 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-07 18:29:40 +00:00
Jamie Tanna c92c7e2d3a refactor(types): make return type for getToolSettingsOptions stricter (#45133)
As part of future changes, it makes it easier to work with the resulting
types, because it's clear when they are optional/required.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 17:33:17 +00:00
Jamie Tanna b017c7548a fix(exec/docker): single-quote the sidecar bash command
When executing commands for `binarySource=docker`, we have two areas
that a command could have shell expansion/injection:

- on the host (when constructing the `bash -l -c`)
- in the container (when running a manager-specific command)

When constructing the host's command, we previously would escape the
`"`, which allows Bash syntax for `${VAR}` and `$(...)` syntax inside
it.

While managers use `quote()` to make the inputs safer, the use of `"`
around that would not provide any protection, and lead to cases where
the `quote()` could be expanded on the host, before `docker run`
executes.

After recent changes to each manager - and removal of `shell: true` -
this doesn't seem to be exploitable, but this hardens it further.

Additionally, we never escaped `\`, so a value containing `\"` produces
a command that `shlex.split` rejects, and the update fails rather than
running.

Instead, we can quote the whole `-c` argument with `quote()`, which
round-trips through both `shlex.split` - the default, no-shell path - and
a real shell.

This removes the `lgtm [js/incomplete-sanitization]` suppression as
we're now correctly sanitising this.

Note this doesn't remove the need for the managers to quote their own
values, as the second area above is still a real shell.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:25:42 +01:00
Jamie Tanna 6d2fa815b7 fix(manager/npm): quote package spec in corepack command
To prevent the possibility of a npm package name including shell
metacharacters (which is unlikely, but potentially possible through a
well-crafted payload), which could lead to command execution, we can
make sure they are quoted appropriately.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:25:41 +01:00
Jamie Tanna 3793e3bab9 fix(manager/deno): quote allow-import host list in install command
A malicious Host Rule could be crafted to inject shell metacharacters
which could lead to command execution, we can make sure they are quoted
appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:25:40 +01:00
Jamie Tanna 521d325afd fix(manager/nix): quote GitHub token in flake update command
A malicious Host Rule could be crafted to inject shell metacharacters
which could lead to command execution, we can make sure they are quoted
appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:22:55 +01:00
Jamie Tanna 7279744cd6 fix(manager/maven-wrapper): quote distribution type in wrapper command
To prevent the possibility of the `distributionType` in a given
repository including shell metacharacters, which could lead to command
execution, we can make sure they are quoted appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:22:55 +01:00
Jamie Tanna b3f7846c16 fix(manager/gradle-wrapper): quote distribution URL in wrapper command
To prevent the possibility of the `distributionUrl` in a given
repository including shell metacharacters, which could lead to command
execution, we can make sure they are quoted appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:22:55 +01:00
Jamie Tanna c9cec1affb fix(manager/gomod): quote module path in import path update command
To prevent the possibility of a Go module name including
shell metacharacters (which is unlikely, but potentially possible
through a well-crafted payload), which could lead to command execution,
we can make sure they are quoted appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:22:55 +01:00
Jamie Tanna ff3e99ef53 fix(manager/mix): quote hex organization and token in auth command
To prevent the possibility of an `organization` or `token` including
shell metacharacters, which could lead to command execution, we can make
sure they are quoted appropriately.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-07 14:22:55 +01:00
renovate[bot] d8aa95fe64 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.4 (main) (#45131)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.4

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.3 | 13.82.4 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-07 13:03:00 +00:00
Jamie Tanna a28ecdc122 refactor(types): clarify ToolSettings has two levels of config (#45125)
As part of future changes, we'll add options that do not require the
Global option to take precedence and/or be used as an upper limit.

To make this clearer, we can split out the options into Global and Repo
variants.
2026-08-07 12:21:13 +00:00
renovate[bot] 4230fe3132 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.3 (main) (#45122)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.3

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.2 | 13.82.3 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-07 10:04:59 +00:00
Jamie Tanna f88212be2e fix(proxy): sanitise password components in HTTP_PROXY variable(s) in logs (#45117)
If a proxy URL appears to have a password component in it, we should
make sure that this is sanitised.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-06 15:16:06 +00:00
Jamie Tanna 54384ff3e5 fix(util/host-rules): sanitise TLS credential fields in hostRules (#45119)
* chore(util): note that `httpsCertificate` and `httpsCertificateAuthority` aren't secret

Although we're currently treating them as such, they're not technically
unsafe to appear in the logs, as a Certificate (and the authority) are
public.

* fix(util/host-rules): sanitise TLS credential fields in hostRules

We previously noted that the `httpsPrivateKey`, `httpsCertificate`, and
`httpsCertificateAuthority` fields would be marked as confidential, but
we weren't correctly sanitising them.

We can make sure that these fields are correctly flagged as secret
("confidential") and that they need to be sanitised when referenced.

Although the `httpsCertificate` and `httpsCertificateAuthority` aren't
secret, we can keep them sanitised for consistency with how we've
currently documented them as being sanitised.

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

* test(util/host-rules): ensure that all secret fields are marked as secret

As a way to make sure that new fields being added `HostRule`s are
considered as to whether the field should be marked as secret
("confidential") or not, we can add a test (and a compile-time
exhaustive check) to validate that `redactedFields` and
`confidentialFields` are kept in sync.

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

---------

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-06 15:15:54 +00:00
Jamie Tanna 244bfe15a7 fix(workers/global): sanitise COREPACK_NPM_{TOKEN,PASSWORD} in logs (#45116)
As we weren't previously doing so.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-06 14:04:31 +00:00
Valentin Vakar d7ce0605b2 fix(datasource/docker): fetch all pages for cgr.dev (#45114)
Add Chainguard to hostsNeedingAllPages

Chainguard sorts lexically and publishes a tag per build, so current versions sort past the page limit
2026-08-06 13:15:08 +00:00
Jamie Tanna 52ff375f0a chore: add linter rule for shell: true usage (#45110)
As we shouldn't really be using it, we should flag up usages more
clearly.

In cases where we do need to specify this - when
`allowShellExecutorForPostUpgradeCommands` is set - then we can disable
the rule.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-06 11:35:08 +00:00
Jamie Tanna a36eed3365 chore(manager/flux): don't use shell execution to flux install (#45109)
As this is the only place in the codebase we're currently doing this, we
should remove the usage of `shell` semantics for file redirection, which
isn't needed.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-06 10:02:30 +00:00
renovate[bot] 7840681f13 chore(deps): update dependency astral-sh/setup-uv to v9 (main) (#45100)
chore(deps): update dependency astral-sh/setup-uv to v9

| datasource  | package            | from   | to     |
| ----------- | ------------------ | ------ | ------ |
| github-tags | astral-sh/setup-uv | v8.3.2 | v9.0.0 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-06 07:57:38 +00:00
renovate[bot] c4756c3de6 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.2 (main) (#45103)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.2

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.1 | 13.82.2 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-06 07:30:28 +00:00
Sebastian Poxhofer fa17e59984 feat(github-actions): add support for pnpm/setup (#45094)
* refactor(manager/github-actions): return dependency arrays from community `with:` schemas

A `withSchema` now yields `PackageDependency[]` directly, instead of a
`{ val, ...meta }` object whose extra fields were merged in through an untyped
`Record<string, unknown>`. Schemas describe the dependency they find, and a
single step may yield more than one.

`isInvalid` moves out of `CommunityActionConfig` into `valSchema`, its only
caller. The config fields are now applied to every dependency a schema yields.

No behavior change.

* feat(manager/github-actions): support `pnpm/setup`

`pnpm/setup` replaces `pnpm/action-setup` for pnpm 11+. Its `version:` input
resolves as the `pnpm` package, and its `runtime:` input as the JavaScript
runtime to install - `node`, `bun` or `deno`, named as `<name>@<version>` to
match pnpm's `packageManager` field syntax.

An unknown runtime name is skipped as `invalid-name`, so a typo does not pass
silently.
2026-08-06 05:05:41 +00:00
renovate[bot] 814c4dc689 fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.1 (main) (#45099)
fix(deps): update ghcr.io/renovatebot/base-image docker tag to v13.82.1

| datasource | package                        | from    | to      |
| ---------- | ------------------------------ | ------- | ------- |
| docker     | ghcr.io/renovatebot/base-image | 13.82.0 | 13.82.1 |

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 21:31:17 +00:00