* refactor(datasource): derive github-release-attachments from github-releases
* refactor(datasource): keep the github-releases id readonly and inherit its timestamp note
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases
* feat(datasource): add GraalVM version datasource with support for JDK and JRE releases
* add coverage
* fix
* fix
* fix
* code cov
* code cov
* code cov
* refactor(datasource): integrate GraalVM into java-version datasource
Merges graalvm-version datasource into java-version as a unified multi-vendor
Java distribution datasource. Implements vendor-based modular architecture with
routing layer for Adoptium (Eclipse Temurin) and Oracle GraalVM.
Architecture:
- Vendor-specific handlers (adoptium.ts, graalvm.ts) with routing in index.ts
- Vendor-aware system detection with different arch/os mappings per vendor
- Custom registry support for GraalVM's mise-java API
- Adoptium remains the default registry for backwards compatibility
Package names:
- New explicit: adoptium-jdk, adoptium-jre, oracle-graalvm-jdk, oracle-graalvm-jre
- Legacy (map to Adoptium): java, java-jdk, java-jre
Changes:
- Created adoptium.ts and graalvm.ts vendor handlers
- Enhanced common.ts with vendor detection and vendor-specific system mappings
- Updated index.ts with routing layer and custom registry support
- Merged test suites with comprehensive coverage for both vendors
- Updated mise manager integration to use JavaVersionDatasource
- Removed graalvm-version datasource directory
All 65 datasource tests and 93 mise manager tests passing.
* fix
* test(datasource): add coverage for non-HttpError paths in java-version
* fix(datasource): remove dead code and add coverage for java-version
Remove unreachable HttpError handling from _getReleases catch block
since both getAdoptiumReleases and getGraalvmReleases handle HttpError
internally. Add test for the graalvmRegistryUrl fallback when
registryUrl is undefined.
* fix(datasource): address review comments for GraalVM datasource
- Remove unused 'datasource-graalvm-version' cache namespace
- Convert MiseJavaRelease interface to Zod schema and derive type from it
- Use http.getJson() with the Zod schema in getGraalvmReleases instead
of getJsonUnchecked, letting the schema handle invalid/empty responses
- Update getGraalvmReleases test mock to use getJson
* docs: remove unused datasource-graalvm-version from cacheTtlOverride docs
* fix(datasource): preserve Adoptium config typing
* fix(datasource): harden GraalVM release parsing
* fix(datasource): address GraalVM review feedback
* test: cover GraalVM mise package mapping
* test(datasource): cover default GraalVM registry fallback
* test(datasource): cover legacy registry resolution
* test(datasource): type legacy datasource mocks
* fix(datasource): harden GraalVM defaults and responses
* refactor(datasource): use function-only registry accessors
* test(datasource): cover registry accessor functions
* test: restore coverage exclusions
* chore: retrigger CI checks
* ci(linter): add renovate/no-host-rules-mock rule
Flags vi.mock()/vi.doMock() calls whose module specifier contains
"host-rules" in spec files. Tests should configure real rules via
hostRules.add() instead of mocking the host-rules module.
Enabled at "warn" severity instead of "error": the repo currently has
35 pre-existing violations across 34 spec files, which exceeds the
agreed fix threshold of 12 files. No violation fixes are included;
migrating each spec to real hostRules.add()/clear() setup is a
semantic test rewrite that should be done incrementally, after which
the rule can be promoted to "error".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* ci(linter): enforce renovate/no-host-rules-mock at error
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test(datasource): use real host-rules instead of mocking
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test(manager): use real host-rules instead of mocking
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test(platform): use real host-rules instead of mocking
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test(util,workers): use real host-rules instead of mocking
Also narrow renovate/no-host-rules-mock to the host-rules module itself so that mocking e.g. host-rules-from-env is not flagged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* ci(linter): mention '~test/host-rules.ts' util in no-host-rules-mock message
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
The github-releases datasource has been copied into a new datasource called github-release-attachments.
The github-releases general datasource is updated to use the underlying Git tag of a GitHub release entry for digest computation.
Fixes#20160, Fixes#19552
BREAKING CHANGE: Regex Manager configurations relying on the github-release data-source with digests will have different digest semantics. The digest
will now always correspond to the underlying Git SHA of the release/version. The old behavior can be preserved by switching to the
github-release-attachments datasource.
* feat: add datasource for Hermit package manager
* fix: make hermit datasource use http.stream instead of http.get
* chore: inline small function and return null on error in hermit datasource
* fix: use regExp to extract owner and repo from registryUrl
* fix: use http from super & use error instead of debug on datasource error
* fix: fix type check failure for github-release test
* Update lib/modules/datasource/hermit/index.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* fix: wrap JSON.parse to avoid breaking process, plus more comment onto the search manifest streaming process
* fix: add test to cover the invalid json case
* fix: change some logger.errors to logger.warn in hermit datasource, error will exit the whole process
* Update lib/modules/datasource/hermit/index.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.spec.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* Update lib/modules/datasource/hermit/index.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* fix: use parseUrl and use hermit as GithubHttp id
* fix: added test to include HermitDatasource type in GITHUB_API_USING_HOST_TYPES
* fix: handle invalid url & achieve code coverage
* fix: move url parsing to parent function
* Update lib/modules/datasource/hermit/index.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
* chore: clean up HermitDataSource class doc
* fix: getHermitSearchManifest cache key function should expect undefined
* fix: pass GetReleasesConfig into getHermitSearchManifest to get proper caching working
* Update lib/modules/datasource/hermit/readme.md
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* Update lib/modules/datasource/hermit/readme.md
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* Update lib/modules/datasource/hermit/readme.md
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* Update lib/modules/datasource/hermit/readme.md
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* Update lib/modules/datasource/hermit/readme.md
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* chore: fix json block in datasource readme.md
* Put packageRules example in step 4
* fix: fix lint error
* fix: pass parsedUrl into getHermitSearchManifest, add warning and simplifies type
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
* refactor(github): Introduce misc `query` function for GraphQL
* Update lib/modules/datasource/github-releases/cache/cache-base.ts
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Renames `lookupName` to be `packageName`.
BREAKING CHANGE: Use `packageName` instead of `lookupName` if interacting with Renovate datasources directly.
Moves datasource, manager, platform and versioning code from lib/ into new lib/modules/
BREAKING CHANGE: External tools must update paths to datasource, manager, platform and versioning