Rewrote the Flask server into a FastAPI one that has Prometheus metrics and connects to a database

This commit is contained in:
florian committed 2025-10-09 20:21:04 +02:00
1 parent 0d04a0f790
commit db70de7659
13 files changed
+294 -124

No files matched your search

+29
View File
@@ -0,0 +1,29 @@
import requests
from secret_handler import return_credentials
dockerhub_token = return_credentials("/etc/secrets/dockerhub_token")
dockerhub_username = return_credentials("/etc/secrets/dockerhub_username")
def login_and_get_token()->str:
"""
You have to first login with credentials to get a token for subsequent api requests.
"""
login_url = "https://hub.docker.com/v2/users/login/"
response = requests.post(login_url,
json={"username": dockerhub_username, "password": dockerhub_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"))