Distributions like JetBrains Runtime publish 4-segment versions such as
'17.0.8.1+1080.1' that the semver package rejects. Both compareBuild and
satisfies throw on these, which surfaced to users as "Error: Invalid
Version: 17.0.8.1+1080.1" and aborted the whole install when any
available version was non-semver. Guard with an early semver.valid check
so unparseable versions are treated as a non-match.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Make the Adoptopenjdk package type look at the Temurin repo first for latest assets
* Address Copilot code review comments
- Use strict equality (===, !==) instead of loose equality (==, !=) for all comparisons
- Properly handle caught errors with instanceof type narrowing before accessing properties
- Only fall back to legacy AdoptOpenJDK for specific version-not-found errors
- Rethrow unexpected errors to avoid masking real issues (network failures, rate limits, etc.)
- Fix error message check to match actual error text ('No matching version found')
- Remove unnecessary undefined check since method return type is never undefined
- Add @internal JSDoc annotation to TemurinDistribution.findPackageForDownload()
- Update tests to properly mock Temurin lookup failures for fallback behavior testing
- Rebuild dist files
* Always fall back to legacy AdoptOpenJDK but log all Temurin failures
- Change error handling to gracefully fall back for all errors, not just version-not-found
- Log version-not-found errors as notices with migration guidance
- Log other Temurin failures as debug messages for troubleshooting
- Improves resilience: users always get a result even if Temurin API has issues
- Maintains visibility: failures are still logged for debugging
* Fixes from review
* Fixes from review
* Fixes from review
* Regenerate dist
* Use Link headers for Adoptium pagination
* Fix nullable pagination URL types and rebuild dist
* Add 1000-page safeguard for JetBrains pagination
* Adjust plan for pagination safeguard scope
* Move pagination safeguard to non-JetBrains installers
* Add 1000-page safeguard to Adopt Temurin and Semeru pagination
* Fix Prettier formatting in adopt, semeru, and temurin installer files
* Fix CI audit failure by updating vulnerable transitive deps
* Address PR review: RFC-compliant Link parsing, SSRF validation, centralized constant
- Make getNextPageUrlFromLinkHeader RFC 8288 compliant by splitting
link-values and checking for rel=next anywhere in the parameters,
not just as the first parameter after the semicolon.
- Add validatePaginationUrl utility to reject pagination URLs that
point to unexpected origins (SSRF mitigation).
- Centralize MAX_PAGINATION_PAGES in util.ts instead of duplicating
across Adopt, Semeru, and Temurin installers.
- Add tests for rel not being the first parameter, and for URL
origin validation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address code review feedback on pagination implementation
- Tighten rel regex with word boundary to prevent false positives
(e.g., rel="nextsomething" no longer matches).
- Use parsed.origin comparison in validatePaginationUrl to correctly
handle explicit default ports (e.g., :443 for HTTPS).
- Fix pagination safeguard tests to use same-origin URLs so they
actually exercise the 1000-page limit instead of being rejected
by origin validation on the first request.
- Add test for rel="nextsomething" not matching.
- Add test for explicit default port acceptance.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix prettier formatting in util.test.ts
* Rebuild dist/ to fix check-dist CI failure
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Refactor error handling for version not found cases across multiple installers
* Mock core.error in tests to suppress error logs
* fix(graalvm): improve error messages for EA version not found scenarios
* refactor(tests): update error messages for version not found scenarios
* fix(graalvm): enhance error messages for version not found scenarios
* fix(graalvm): improve error messages for version not found scenarios with updated download URL
* fix(graalvm): improve error handling for EA version not found scenarios with clearer messages
- Conditional TCK certification filter: only apply certifications=tck to GA releases, not EA
- Change ARM 64-bit arch parameter from arm64 to aarch64 to match API expectations
- Update tests to reflect these changes (EA URLs no longer have certifications=tck, ARM64 uses aarch64)
Agent-Logs-Url: https://github.com/nbauma109/setup-java/sessions/fd061273-f16e-4ec7-9790-3b46d7823528
Co-authored-by: nbauma109 <9403560+nbauma109@users.noreply.github.com>
- Add pagination logic to fetch all available packages instead of just first 100
- Add getArchParam() method to correctly map architecture values (x64, x86, arm64, arm)
- Update tests to expect correct architecture parameters in API URLs
Agent-Logs-Url: https://github.com/nbauma109/setup-java/sessions/b138d8c7-38d8-473f-b525-5b0eebc89962
Co-authored-by: nbauma109 <9403560+nbauma109@users.noreply.github.com>
- Updated IZuluVersions model to match new API response structure
- Migrated from old bundles API to new metadata API v1
- Added CRaC support with jdk+crac and jre+crac package types
- Set crac_supported=false by default to avoid selecting CRaC builds
- Updated all test files and test data for new API format
- Added test coverage for CRaC package type
- Updated action.yml to document new CRaC package types
Agent-Logs-Url: https://github.com/nbauma109/setup-java/sessions/50830dca-2522-43f9-befd-3285589dac71
Co-authored-by: nbauma109 <9403560+nbauma109@users.noreply.github.com>
Updated the Java version in the README setup examples from 21 to 25
to reflect the latest supported version. This change ensures that
users are guided to use the most current Java version for their
projects.
- Updated all instances of 'java-version: 21' to 'java-version: 25'
- Modified supported version syntax to include '25'
* Upgrade @actions/cache to v5
- Bump @actions/cache from 4.0.3 to 5.0.0
- Update license cache files for new/updated dependencies
- Rebuild dist bundles
- Mark @actions/http-client as reviewed in licensed config (MIT license text present but detected as 'other')
* chore: Update version to 5.0.1 in package.json and package-lock.json
* upgrade actions/cache to 5.0.1
---------
Co-authored-by: Aparna Jyothi <aparnajyothi-y@github.com>
* chore(e2e-versions): Add e2e test scenario on `setup-java-version-from-file-major-minor-patch-with-dist` for `.sdkmanrc`
* chore(e2e-versions): Update `setup-java-version-from-file-major-minor-patch-with-dist` test to include the file name of the java-version-file that is used
* feat: Add support for `.sdkmanrc` as *Java Version File*
* chore: Add test for the latest known sdkman java versions
* docs(advanced-usage): Document support for `.sdkmanrc` as java-version-file
* chore(docs): Anyone can contribute and maintain 🤷
* Update advanced-usage.md
Add example step/file for `.sdkmanrc`
* Update advanced-usage.md
* Update util.ts
* chore: format and rebuild
* chore: untouch toolchains.ts
* fix check dist error
---------
Co-authored-by: mahabaleshwars <147705296+mahabaleshwars@users.noreply.github.com>
* Code updated to let code accept github token and refactored the code.
* github token accept through environment variable
* fix test error
* audit fix commit
* update package-lock.json
* Update GraalVM Tests
* Lint Issue Resolve
* Update Test case for Windows
* update with enhance code and test