From c9985c07a811fac37212a202dc081097a7c1848c Mon Sep 17 00:00:00 2001 From: Stefan Naglee Date: Mon, 31 Jul 2017 07:55:48 -0400 Subject: [PATCH] Fix paginated json heroku client bug. Fixes #69 --- .../docker-registry-client/registry/json.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/vendor/github.com/heroku/docker-registry-client/registry/json.go b/vendor/github.com/heroku/docker-registry-client/registry/json.go index 865057e..6ab560a 100644 --- a/vendor/github.com/heroku/docker-registry-client/registry/json.go +++ b/vendor/github.com/heroku/docker-registry-client/registry/json.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "net/http" + nurl "net/url" "regexp" ) @@ -42,7 +43,23 @@ func (registry *Registry) getPaginatedJson(url string, response interface{}) (st if err != nil { return "", err } - return getNextLink(resp) + + nextUri, err := getNextLink(resp) + if err != nil { + return "", err + } + + base, err := nurl.Parse(registry.URL) + if err != nil { + return "", err + } + + u, err := nurl.Parse(nextUri) + if err != nil { + return "", err + } + + return base.ResolveReference(u).String(), nil } // Matches an RFC 5988 (https://tools.ietf.org/html/rfc5988#section-5)