import requests from dotenv import load_dotenv import os load_dotenv() DOCKER_TOKEN = os.getenv("DOCKER_TOKEN") DOCKER_USERNAME = os.getenv("DOCKER_USERNAME") def login_and_get_token(): login_url = "https://hub.docker.com/v2/users/login/" response = requests.post(login_url, json={"username": DOCKER_USERNAME, "password": DOCKER_TOKEN}) if response.status_code == 200: token = response.json()["token"] return token else: print(f"Login failed: {response.status_code} - {response.text}") def find_package_version_with_tag(repo, tag): token = login_and_get_token() headers = {"Authorization": f"JWT {token}"} tags_url = f"https://hub.docker.com/v2/repositories/{repo}/tags/{tag}?page_size=1" tags_response = requests.get(tags_url, headers=headers) id = tags_response.json()["id"] return id if __name__ == "__main__": print(find_package_version_with_tag("pihole/pihole", "latest"))