You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add first-class proxy support for Homebrew's JSON API and prebuilt homebrew/core bottles. The proxy currently has Homebrew package metadata support through registries, but Homebrew clients cannot use it as a download mirror.
This should be implemented after #198 and #199 are merged. #198 provides shared OCI bearer-challenge authentication, including the flow used by GHCR. #199 adds OCI manifest caching, digest aliases, cached blob lookup, HEAD support, and offline serving. The Homebrew handler should generalize and reuse that code.
The initial scope should include:
Proxy the formula and cask JSON API from https://formulae.brew.sh/api, preserving signed JWS responses byte-for-byte.
Proxy manifests and bottle blobs from https://ghcr.io/v2/homebrew/core through a configurable OCI handler.
Document client configuration using HOMEBREW_API_DOMAIN and HOMEBREW_BOTTLE_DOMAIN.
Test the handler with an actual brew fetch jq against an empty cache, a warm cache, and an unavailable upstream.
Arbitrary source archives, cask application downloads, custom tap artifact hosts, and the generic HOMEBREW_ARTIFACT_DOMAIN URL-proxy behaviour are out of scope for the first version. Those require a separate design because they can turn the service into an open URL proxy.
Add first-class proxy support for Homebrew's JSON API and prebuilt
homebrew/corebottles. The proxy currently has Homebrew package metadata support throughregistries, but Homebrew clients cannot use it as a download mirror.This should be implemented after #198 and #199 are merged. #198 provides shared OCI bearer-challenge authentication, including the flow used by GHCR. #199 adds OCI manifest caching, digest aliases, cached blob lookup,
HEADsupport, and offline serving. The Homebrew handler should generalize and reuse that code.The initial scope should include:
https://formulae.brew.sh/api, preserving signed JWS responses byte-for-byte.https://ghcr.io/v2/homebrew/corethrough a configurable OCI handler.GET, andHEADbehaviour used by Homebrew.HOMEBREW_API_DOMAINandHOMEBREW_BOTTLE_DOMAIN.brew fetch jqagainst an empty cache, a warm cache, and an unavailable upstream.Arbitrary source archives, cask application downloads, custom tap artifact hosts, and the generic
HOMEBREW_ARTIFACT_DOMAINURL-proxy behaviour are out of scope for the first version. Those require a separate design because they can turn the service into an open URL proxy.