Commit Graph

34 Commits

Author SHA1 Message Date
ntsk 9d1070091a fix(manager/pep621): support array form of tool.uv.sources (#44970)
* test(manager/pep621): cover array uv sources

* fix(manager/pep621): support array uv sources

* test(manager/pep621): cover unknown source fallback
2026-09-04 11:06:07 +00:00
Jamie Tanna 5b1749983c feat: always set CI=true for subprocesses
As noted in #43761, we had recently set `CI=true` for the Renovate and
Containerbase orgs on Mend-hosted apps due to a pnpm v11 requirement:

    ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY  Aborted removal of
      modules directory due to no TTY

    If you are running pnpm in CI, set the CI environment variable to
      "true", or set "confirmModulesPurge" to "false".

Similarly in #43606, it was noted that we should do this for `mise lock`
to mark the workspace as "trusted".

Although we went with a different situation, there will be cases where
this is useful for tools being executed, for instance when we invoke `yarn`.

We also make sure to keep our documentation up-to-date as we add to the
specific overrides.

With help from Claude Sonnet and Opus to:

- perform some of the mechanical updates as part of this change
- ensure that the Docker sidecar always has `hardcodedProcessEnv` passed
  into it
- catch a needed change to `exposeAllEnv` handling

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-08-24 17:21:24 +01: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 0e6429b13e refactor(types): document localDir isn't a globalOnly option (#44635)
* refactor(types): document `localDir` isn't a `globalOnly` option

To make sure that it's clear when reviewing `GlobalConfig`, as well as
working with our types, we can move the `localDir` definition into a
separate type.

* fixup! refactor(types): document `localDir` isn't a `globalOnly` option

* fixup! refactor(types): document `localDir` isn't a `globalOnly` option

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

* fixup! refactor(types): document `localDir` isn't a `globalOnly` option

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

* fixup! refactor(types): document `localDir` isn't a `globalOnly` option

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-07-20 08:07:17 +00:00
Felipe Santos 33ca9e6ed7 test: fix test cases failing inside devcontainer (#43886) 2026-06-09 06:50:08 +00:00
Jamie Tanna 2d1e57532f refactor(types): rename lockFile to fileName in ArtifactError (#41631)
As `fileName` makes more sense (as it's not always a lock file we're
updating).

Also, if you set `fileName`, it would never actually output the
filename.

This renames the usages of `lockFile` to `fileName`.

Co-authored-by: Claude Sonnet 4.5 <jamie.tanna+github-copilot@mend.io>
2026-03-10 09:57:31 +00:00
Sergei Zharinov 9d857c1f68 refactor(lint): Organize imports with biome (#40966) 2026-02-06 13:40:01 +00:00
Michael Kriese cd0426babd feat(sidecar): use renovatebot/base-image instead of containerbase/sidecar (#40772)
* feat(sidecar): use `renovatebot/base-image` instead of `containerbase/sidecar`

* refactor: simplify sidecar handling

* test: fixup

* docs: fixup
2026-01-29 10:05:24 +00:00
Sergei Zharinov 930cf6633c refactor: Rewrite imports with .ts extensions (#40700)
fix: Additional vi.mock path corrections and prettier formatting
2026-01-26 22:48:17 +00:00
renovate[bot] f609b6f472 chore(deps): update vitest monorepo to v4 (main) (major) (#39505)
* chore(deps): update vitest monorepo to v4

| datasource | package             | from  | to     |
| ---------- | ------------------- | ----- | ------ |
| npm        | @vitest/coverage-v8 | 3.2.4 | 4.0.10 |
| npm        | vitest              | 3.2.4 | 4.0.10 |

* chore: migration

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2025-11-24 15:30:57 +00:00
renovate[bot] b4ed9e65d9 chore(deps): update dependency @vitest/eslint-plugin to v1.3.23 (main) (#38702)
* chore(deps): update dependency @vitest/eslint-plugin to v1.3.23

| datasource | package               | from   | to     |
| ---------- | --------------------- | ------ | ------ |
| npm        | @vitest/eslint-plugin | 1.3.16 | 1.3.23 |

* remove now unnecessary exceptions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2025-10-31 07:50:48 +00:00
renovate[bot] 1280fe4dc7 chore(deps): update dependency @vitest/eslint-plugin to v1.3.16 (main) (#38502)
* chore(deps): update dependency @vitest/eslint-plugin to v1.3.16

| datasource | package               | from   | to     |
| ---------- | --------------------- | ------ | ------ |
| npm        | @vitest/eslint-plugin | 1.3.13 | 1.3.16 |

* fix linting errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: secustor <sebastian@poxhofer.at>
2025-10-13 09:24:15 +00:00
Michael Kriese 0691d29ae9 feat(pep621): return found lockfiles (#37633) 2025-08-20 14:43:43 +00:00
akern40 61cc1513ba feat(pep621): Add support for uv workspaces (#37064) 2025-08-12 08:33:18 +00:00
Sergei Zharinov 2ce429f4d1 refactor(pep621): Simplify schema (#37441) 2025-08-12 05:25:18 +00:00
Sergei Zharinov 7c79c11285 fix: Always use default import from upath and semver-stable (#37325) 2025-08-05 11:01:45 +00:00
Nico Tonnhofer 5651c2e910 fix(manager/pep621): depType requires-python should ignore implicit default registry url (#36910) 2025-07-09 05:38:59 +00:00
Johannes Feichtner 5a9190488e feat(pep621): detect uv constraint from tool.uv.required-version (#36850) 2025-07-06 07:13:56 +00:00
RahulGautamSingh 455db4228d fix(manager/pep621): use depName in lock update commands (#35855) 2025-05-11 07:39:51 +00:00
Nik Stuckenbrock f067f6a60e fix(pep621): make name for uv index optional (#35150) 2025-04-28 14:19:06 +00:00
Michael Kriese 19c115c813 test: cleanup (#34785) 2025-03-13 17:52:09 +00:00
Trim21 6e5731b554 test: migrate from jest to vitest (#34499) 2025-02-26 14:18:38 +00:00
Michael Kriese 997c23502e test: migrate to vitest (#34475)
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
2025-02-26 09:35:54 +00:00
Michael Kriese e9cbd02865 fix(lockfilemaintenance): ensure isLockFileMaintenance on grouping (#33971) 2025-02-20 12:57:05 +00:00
Bas Schoenmaeckers 8c5a56e34c fix(manager/pep621): remove pinned indexes from UV_EXTRA_INDEX_URL (#32819) 2024-12-03 21:59:48 +00:00
Bas Schoenmaeckers 55b08e281b feat(manager/pep621): add support for uv index configuration (#32771) 2024-11-29 08:49:37 +00:00
Maxime Brunet 80f03a86dc feat(uv): support GCloud credentials for Google Artifact Registry when locking (#32545) 2024-11-17 09:01:33 +00:00
Maxime Brunet 22880e9aac feat(pep621): set Git insteadOf directives when updating pdm/uv locks (#32378) 2024-11-14 06:13:12 +00:00
Mathieu Kniewallner c20044e2d5 fix(manager/uv): apply normalization on sources (#31297) 2024-10-29 18:56:50 +00:00
Mathieu Kniewallner 7f4181afec test(manager/uv): move source skip test to extract (#32195) 2024-10-29 16:48:41 +00:00
Nam Vu 03cf03b2be feat(manager/uv): add support for git sources (#31928)
Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
2024-10-19 13:57:08 +00:00
Tor Arvid Lund 1ca7d263f0 feat: export UV_EXTRA_INDEX_URL before doing 'uv lock' (#31840)
Co-authored-by: Rhys Arkins <rhys@arkins.net>
2024-10-11 09:33:58 +00:00
Mathieu Kniewallner e5eab538e4 fix(manager/uv): skip unsupported sources (#31270) 2024-09-09 20:45:44 +00:00
Mathieu Kniewallner e8d872f7d1 feat(managers): add support for uv universal locking (#30756)
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
2024-08-19 14:34:22 +00:00