* fix(manager/hermit): propagate git credentials to hermit install
hermit install runs without git auth, failing silently for packages
hosted in private repos. Spread getGitEnvironmentVariables(['hermit'])
into extraEnv, matching the pattern used by cargo, gomod, poetry,
copier, vendir, and conan managers.
Passing ['hermit'] as additionalHostTypes ensures hostRules configured
with hostType: 'hermit' are picked up alongside the standard platform
host types.
Also guards against undefined stderr in the outer catch block —
non-UpdateHermitError exceptions rendered "undefined" in PR comments.
* test(manager/hermit): cover non-Error thrown value fallback
Exercise the String(err) branch in the generic error handler when
a non-Error value propagates from updateHermitPackage.
* fix: address review comments on hermit git auth
Remove unnecessary spread operator from getGitEnvironmentVariables() result
assignment and apply one-sentence-per-line docs convention.
* test: ensure we set `binarySource=global`
As part of future changes, we'll correctly return the default value from
`GlobalConfig.get`, instead of `undefined` if no default is provided in
the `get` call.
As `binarySource=install` is the default, this then leads to these tests
failing, as they're intended to run with `binarySource=global`.
Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
* fixup! test: ensure we set `binarySource=global`
* fixup! fixup! test: ensure we set `binarySource=global`
---------
Co-authored-by: Claude Sonnet 4.6 <jamie.tanna+claude-code@mend.io>
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>
This has been deprecated since 2022-07, and is unused as we only ever
use UTF-8.
In `tools/utils/exec.ts` we make sure to specify it explicitly, so we
don't get a Buffer returned.
* feat: add Hermit package manager
* fix: pass bin directory into getRepoStatus as string rather than an array
* fix: fix up hermit manager implementations
* add docker support in exec
* move fs related operations back into util/fs
* remove ENVVar passed on by process.env
* set concurrency in pMap
* use for instead of pMap for concurrency = 1
* use regex to pick up package reference parts
* fix: fix manager updateArtifacts test after change
* Update lib/modules/manager/hermit/extract.ts
Co-authored-by: Philip <42116482+PhilipAbed@users.noreply.github.com>
* fix: fix up test and docker reference for hermit manager
* test refer to internal fs
* docker image change to sidecar
* only symlink are read for the changed file content after hermit
install
* no more global mock in artifacts test
* fix: use warn instead of error so error better flows up in hermit manager
* fix: partial for test type, use throw instead of reject
* fix: update snapshot
* fix: combine install packages, also make extractPackageFile async
* fix: remove weird generated readLocalSynmlink in test
* fix: removes old test
* fix: use ensureLocalPath and fix test coverage
* fix: more test coverage
* fix: use ensureLocalPath in readLocalSymlink
* Apply suggestions from code review
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* fix: remove unused functions and types
* Apply suggestions from code review
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Apply suggestions from code review
Co-authored-by: Sergei Zharinov <zharinov@users.noreply.github.com>
* fix: use execSnapshots and for of loop when returning the result
* Update lib/modules/manager/hermit/artifacts.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* fix: move exports below imports
Co-authored-by: Philip <42116482+PhilipAbed@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-authored-by: Sergei Zharinov <zharinov@users.noreply.github.com>