v1.226.0-rc.1
Pre-release
Pre-release
feat(toolchain): support Aqua `github_archive` package type Erik Osterman (Cloud Posse) (@osterman) (#2416)
## what- Add
github_archivepackage type to the Aqua-compatible toolchain registry parser and installer. - Resolve downloads to
https://github.com/{owner}/{repo}/archive/refs/tags/{version}.tar.gz, matching upstreamaquaproj/aquasemantics. - Hardcode
tar.gz(mirroring aqua'sGetFormat());asset,url,format, andformat_overridesare intentionally ignored for this type. - Extend
resetByPkgTypeso version overrides that switch a tool togithub_archiveclear staleasset/url. - Add unit + registry-parsing tests plus a fixture modeled on the
adr-toolsexample; cover validation, version-prefix handling, format-ignored semantics, URL pattern, and{{trimV .Version}}/pathtemplate idiom. - Add changelog blog post and a shipped milestone under the Extensibility initiative on the roadmap.
why
- Aqua's upstream registry uses
github_archivefor tools shipped as repository source archives (e.g.,adr-tools,tfenv,tgswitch, and many single-script projects). Without this type, those entries failed withunsupported tool type: github_archive. - Adding parity with aqua unblocks all such registry entries with no user-side changes — pull the upstream definition as-is and it just works.
references
- Aqua source: https://github.com/aquaproj/aqua/blob/main/pkg/download/github_archive.go
- Aqua docs: https://aquaproj.github.io/docs/reference/registry-config/github-archive-package/
Summary by CodeRabbit
-
New Features
- Added support for Aqua’s
github_archivepackages, downloading GitHub tag archives. - Added support for
github_contentpackages, downloading individual repository files. - Added validation for repository details and safe relative paths.
- Added support for nested paths, version-specific overrides, and archive-root templates.
- Added support for Aqua’s
-
Bug Fixes
- Improved reliability when acquiring shared file locks.
-
Documentation
- Updated toolchain documentation, roadmap entries, and blog content with configuration guidance and supported package types.