Docker Community Forums

Share and learn in the Docker community.

[bug] dockerhub appears to incorrectly implement Docker Registry HTTP API V2 for retrieving tags

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.