From c36fab07fc8fe4bb52bb3d8c679fc13b0c2b902e Mon Sep 17 00:00:00 2001 From: Joonas Bergius Date: Mon, 10 Aug 2026 11:32:01 -0500 Subject: [PATCH] fix(tags): return empty array after final pagination marker Signed-off-by: Joonas Bergius --- registry/handlers/api_test.go | 8 +++++++- registry/handlers/tags.go | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/registry/handlers/api_test.go b/registry/handlers/api_test.go index f67a8832b..fc8c5af95 100644 --- a/registry/handlers/api_test.go +++ b/registry/handlers/api_test.go @@ -546,6 +546,12 @@ func TestTagsAPI(t *testing.T) { "sb71y", }}, }, + { + name: "page after last tag", + queryParams: url.Values{"last": []string{"sb71y"}, "n": []string{"1"}}, + expectedStatusCode: http.StatusOK, + expectedBody: tagsAPIResponse{Name: imageName.Name(), Tags: []string{}}, + }, { name: "page size bigger than full list", queryParams: url.Values{"n": []string{"100"}}, @@ -601,7 +607,7 @@ func TestTagsAPI(t *testing.T) { t.Fatalf("unexpected error decoding response body: %v", err) } if !reflect.DeepEqual(body, test.expectedBody) { - t.Fatalf("expected response body to be:\n%+v\ngot:\n%+v", test.expectedBody, body) + t.Fatalf("expected response body to be:\n%#v\ngot:\n%#v", test.expectedBody, body) } } diff --git a/registry/handlers/tags.go b/registry/handlers/tags.go index 0e30e1070..d2632f0f6 100644 --- a/registry/handlers/tags.go +++ b/registry/handlers/tags.go @@ -79,7 +79,9 @@ func (th *tagsHandler) GetTags(w http.ResponseWriter, r *http.Request) { // err is either io.EOF moreEntries = false } - filled = returnedTags + if returnedTags != nil { + filled = returnedTags + } } w.Header().Set("Content-Type", "application/json")