29 lines
915 B
Python
29 lines
915 B
Python
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")) |