Skip to content

fix(registry): honor plainHttp on registry login - #422

Merged
manusa merged 1 commit into
mainfrom
fix/oci-registry-plain-http
Aug 31, 2026
Merged

fix(registry): honor plainHttp on registry login#422
manusa merged 1 commit into
mainfrom
fix/oci-registry-plain-http

Conversation

@manusa

@manusa manusa commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Problem

RegistryLogin builds its registry client with plain-HTTP support, but never passes
action.WithPlainHTTPLogin(...) to the login action itself — so .plainHttp() was
silently ignored on login.

This went unnoticed because oras-go used to fall back from HTTPS to HTTP and still send
credentials. oras-go v2.6.1 (a security release) closed that hole: credentials are no
longer forwarded across an HTTPS→HTTP downgrade (GHSA-28r5-37g7-p6mp,
GHSA-xf85-363p-868w). Once that landed, login against a plain-HTTP registry started
failing with 401 unauthorized: authentication required.

Changes

  • Fix: pass action.WithPlainHTTPLogin(options.PlainHttp) in native/internal/helm/registry.go.
  • Tests: the Go and Java OCI tests relied on the old insecure fallback; they now
    declare plainHttp explicitly against the plain-HTTP test registry.
  • CI: bump GO_VERSION 1.25.10 → 1.26.7. Go 1.25 is out of support, and
    helm.sh/helm/v3 3.21.4 requires go >= 1.26.0.

Why now

Two dependabot PRs are red because of this:

Both should go green once this lands and they are rebased.

Verification

  • Full Go suite green.
  • 20 Java OCI tests (HelmPushTest, HelmRegistryTest, HelmShowTest) green.
  • Both re-verified against oras-go 2.6.2 to confirm the dependabot bumps pass.

RegistryLogin built its registry client with plainHTTP but never
passed action.WithPlainHTTPLogin to the login action, so the flag
was silently ignored. This worked until oras-go v2.6.1, a security
release that stopped forwarding credentials across an HTTPS->HTTP
downgrade (GHSA-28r5-37g7-p6mp, GHSA-xf85-363p-868w) - the insecure
fallback had been carrying them.

The Go and Java OCI tests relied on that same fallback, so they now
declare plainHttp explicitly against the plain-HTTP test registry.

Also bumps GO_VERSION to 1.26.7: Go 1.25 is out of support and
helm.sh/helm/v3 3.21.4 requires go >= 1.26.0.

Unblocks #419 and #420.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Marc Nuri <marc@marcnuri.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The focused fix is correctly propagated and covered across native and Java integration paths.

Pull request overview

Fixes plain-HTTP registry login by forwarding the existing option to Helm’s login action.

Changes:

  • Applies WithPlainHTTPLogin during registry login.
  • Updates OCI tests to explicitly use plain HTTP.
  • Upgrades CI to Go 1.26.7.
File summaries
File Description
native/internal/helm/registry.go Forwards plain-HTTP login configuration.
native/main_test.go Updates native OCI registry tests.
HelmRegistryTest.java Covers Java plain-HTTP login.
HelmPushTest.java Configures plain HTTP for push tests.
HelmShowTest.java Configures plain HTTP for OCI show tests.
.github/workflows/build.yml Upgrades build Go version.
.github/workflows/release.yml Upgrades release Go version.
.github/workflows/snapshots.yml Upgrades snapshot Go version.
Review details
  • Files reviewed: 8/8 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@manusa
manusa merged commit 136cae4 into main Aug 31, 2026
4 checks passed
@manusa
manusa deleted the fix/oci-registry-plain-http branch August 31, 2026 09:23
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.

2 participants