Move docker_hub.py to src/

This commit is contained in:
Marc Wrobel
2023-10-15 20:45:13 +02:00
parent 705dc88182
commit 73c7daa0e0

48
src/docker_hub.py Normal file
View File

@@ -0,0 +1,48 @@
import json
import re
import sys
from common import endoflife
METHOD = "docker_hub"
REGEX = r"^(?:(\d+\.(?:\d+\.)*\d+))$"
def fetch_releases(url, regex, releases):
if not isinstance(regex, list):
regex = [regex]
response = endoflife.fetch_url(url)
data = json.loads(response)
for result in data["results"]:
version = result["name"]
matches = False
for r in regex:
if re.match(r, version):
matches = True
if matches:
date = result['tag_last_pushed'].split("T")[0]
releases[version] = date
print(f"{version}: {date}")
if data["next"]:
fetch_releases(data["next"], regex, releases)
def update_product(product_name, configs):
releases = {}
for config in configs:
url = f"https://hub.docker.com/v2/repositories/{config[METHOD]}/tags?page_size=100&page=1"
config = {"regex": REGEX} | config
fetch_releases(url, config["regex"], releases)
endoflife.write_releases(product_name, releases)
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
for product, configs in endoflife.list_products(METHOD, p_filter).items():
print(f"::group::{product}")
update_product(product, configs)
print("::endgroup::")