Add Helm HTTP repository support - #66
Open
andrew wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Helm HTTP chart repository support by introducing a new helm registry that parses index.yaml, exposes package/version/dependency/maintainer metadata, and integrates the new ecosystem into the registry registry (all/), documentation, and tests. It also updates core registry construction to return a clear error when an ecosystem has no default URL and none is provided.
Changes:
- Added
internal/helmregistry implementation and comprehensive tests for parsing and URL resolution. - Updated core registry creation to error when both provided and default URLs are empty (required for Helm).
- Registered
helmviaall/all.goand updated README + ecosystem tests.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| registries_test.go | Adds helm to supported ecosystems and verifies URL-required behavior via registries.New. |
| README.md | Updates supported ecosystem count and documents Helm as “URL required”. |
| internal/helm/helm.go | Implements Helm HTTP repository client: fetches/parses index.yaml, maps metadata, resolves artifact URLs, and builds URLs. |
| internal/helm/helm_test.go | Adds tests covering versions, statuses, digests, dependencies, maintainers, URL resolution, malformed inputs, and custom auth. |
| internal/core/registry.go | Enforces “no configured URL” error when both requested and default URLs are empty. |
| go.mod | Adds YAML parser dependency and promotes vers to a direct dependency. |
| go.sum | Adds checksums for the new YAML dependency. |
| all/all.go | Registers the Helm ecosystem via blank import of internal/helm. |
Suppressed comments (1)
internal/helm/helm.go:324
condition/tagsare not top-level Helm chart metadata fields. Including them inPackage.Metadatacan mislead consumers and can cause YAML unmarshalling failures if an index uses these keys with a non-string type.
if entry.Condition != "" {
metadata["condition"] = entry.Condition
}
if entry.Tags != "" {
metadata["tags"] = entry.Tags
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+75
to
+78
| APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion"` | ||
| Condition string `json:"condition,omitempty" yaml:"condition"` | ||
| Tags string `json:"tags,omitempty" yaml:"tags"` | ||
| AppVersion string `json:"appVersion,omitempty" yaml:"appVersion"` |
Comment on lines
+57
to
+58
| condition: demo.enabled | ||
| tags: backend |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a Helm registry for HTTP chart repositories. It reads index.yaml, maps package, version, dependency, and maintainer metadata, resolves artifact URLs, and requires a configured repository URL because Helm has no default registry.
Registers Helm through the all package and updates the supported ecosystem documentation.
Closes #60