Files
endoflife-date-release-data/src/docker_hub.py
2025-08-31 19:58:48 +02:00

25 lines
909 B
Python

from common import dates, endoflife, http
from common.releasedata import ProductData, config_from_argv
"""Fetches releases from the Docker Hub API.
Unfortunately images creation date cannot be retrieved, so we had to use the tag_last_pushed field instead."""
def fetch_releases(p: ProductData, c: endoflife.AutoConfig, url: str) -> None:
data = http.fetch_json(url)
for result in data["results"]:
version_str = c.first_match(result["name"])
if version_str:
version = c.render(version_str)
date = dates.parse_datetime(result["tag_last_pushed"])
p.declare_version(version, date)
if data["next"]:
fetch_releases(p, c, data["next"])
config = config_from_argv()
with ProductData(config.product) as product_data:
fetch_releases(product_data, config, f"https://hub.docker.com/v2/repositories/{config.url}/tags?page_size=100&page=1")