From 1effa17117f12a8a09a00b5656d7249ce2b80866 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Sun, 18 Jun 2023 21:44:23 +0300 Subject: [PATCH] Add the API handler for repositories' tags. --- docker_tags_getter/api/v2/tags_api.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 docker_tags_getter/api/v2/tags_api.py diff --git a/docker_tags_getter/api/v2/tags_api.py b/docker_tags_getter/api/v2/tags_api.py new file mode 100644 index 0000000..488251e --- /dev/null +++ b/docker_tags_getter/api/v2/tags_api.py @@ -0,0 +1,28 @@ +class TagsAPI: + def __init__(self, fetcher, namespace, repository): + self._fetcher = fetcher + self._url = f"https://hub.docker.com/v2/namespaces/{namespace}/repositories/{repository}/tags" + + def get_list(self): + tags = [] + number = 1 + + while True: + page_url = f"{self._url}?page={number}" + status, json_data = self._fetcher.get(page_url) + + results = json_data["results"] + + names = list(map(lambda element:element["name"], results)) + tags += names + + # check for next page + next_page = json_data['next'] + + if next_page is None: + break + + number+=1 + + return tags +