From 32c9cc26fc885d40e3e1de64b2490dade305f92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Sun, 1 Mar 2026 21:35:40 +0200 Subject: [PATCH] working commit --- client.go | 13 +++++++++++++ client_test.go | 4 ++-- getman.go | 5 +++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/client.go b/client.go index 404fece..0983196 100644 --- a/client.go +++ b/client.go @@ -22,6 +22,19 @@ func NewClient() *Client { } } +func NewClientWithTransport(transport http.RoundTripper, mwFunc ...MiddlewareFunc) *Client { + if transport == nil { + transport = NewDefaultTransport() + } + httpClient := &http.Client{ + Transport: transport, + } + return &Client{ + httpClient: httpClient, + userAgent: "ociClient/1.0", + } +} + func (cli *Client) SetTransport(transport http.RoundTripper) { cli.httpClient.Transport = transport } diff --git a/client_test.go b/client_test.go index af759ee..efcb220 100644 --- a/client_test.go +++ b/client_test.go @@ -33,7 +33,7 @@ func xxxTestClientGetManifest(t *testing.T) { } } -func TestClientManifestExists(t *testing.T) { +func xxxTestClientManifestExists(t *testing.T) { rawrepo := "mirror.gcr.io/alpine" tags := []string{ "3.20.0", @@ -70,7 +70,7 @@ func xxxTestClientBlobExists(t *testing.T) { } } -func TestClientGetBlob(t *testing.T) { +func xxxTestClientGetBlob(t *testing.T) { rawrepos := []string{ "mirror.gcr.io/alpine", } diff --git a/getman.go b/getman.go index ba727b6..a51dc84 100644 --- a/getman.go +++ b/getman.go @@ -3,6 +3,7 @@ package repocli import ( "bytes" "context" + "errors" "fmt" "net/http" "strconv" @@ -41,6 +42,10 @@ func (cli *Client) GetManifest(ctx context.Context, rawrepo, tag string) (bool, return exist, mime, man, err } contentLength := resp.Header.Get("Content-Length") + if contentLength == "" { + err = errors.New("Empty Content-Length header") + return exist, mime, man, err + } manSize, err := strconv.ParseInt(contentLength, 10, 64) if err != nil { return exist, mime, man, err