Per the documentation, retrieving tags should be available through GET /v2/<name>/tags/list
but dockerhub returns 404s from this endpoint. The request needs to be (incorrectly) GET /v2/<name>/tags/
.
E.g.
curl \
--include \
--header "Authorization: JWT ${TOKEN}" \
https://hub.docker.com/v2/repositories/library/golang/tags/list
HTTP/1.1 301 MOVED PERMANENTLY
Date: Fri, 03 May 2019 17:19:38 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
X-Frame-Options: deny
Location: https://hub.docker.com/v2/repositories/library/golang/tags/list/
Server: nginx
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000
curl \
--include \
--header "Authorization: JWT ${TOKEN}" \
https://hub.docker.com/v2/repositories/library/golang/tags/list/
HTTP/1.1 404 NOT FOUND
Date: Fri, 03 May 2019 17:19:46 GMT
Content-Type: application/json
Transfer-Encoding: chunked
X-Frame-Options: deny
Allow: GET, DELETE, HEAD, OPTIONS
Server: nginx
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000
But:
curl \
--silent \
--header "Authorization: JWT ${TOKEN}" \
https://hub.docker.com/v2/repositories/library/golang/tags/ \
| jq .count
963
I can tweak the URLs when making REST calls directly but, when attempting to use an SDK, e.g. distribution that crafts the correct URLs (per the spec), the commands fail.