Rewrote the Flask server into a FastAPI one that has Prometheus metrics and connects to a database
This commit is contained in:
1 parent
0d04a0f790
commit
db70de7659
13 files changed
+294
-124
No files matched your search
@@ -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"))
|
||||
Reference in new issue
Block a user