Skip to content

Add Helm HTTP repository support - #66

Open
andrew wants to merge 1 commit into
mainfrom
add-helm-registry
Open

Add Helm HTTP repository support#66
andrew wants to merge 1 commit into
mainfrom
add-helm-registry

Conversation

@andrew

@andrew andrew commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/helm registry 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 helm via all/all.go and 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 / tags are not top-level Helm chart metadata fields. Including them in Package.Metadata can 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 thread internal/helm/helm.go
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Helm HTTP repository metadata support

2 participants