Sort versions by date then version for all products (#179)
This commit is contained in:
@@ -26,8 +26,5 @@ for item in rss.getElementsByTagName("item"):
|
||||
versions[version] = date
|
||||
print(f"{version}: {date}")
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -64,10 +64,4 @@ for branch in git.list_branches("refs/heads/?.?.x"):
|
||||
fetch_versions_from_file(git.repo_dir / status_file, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
endoflife.write_releases(
|
||||
PRODUCT,
|
||||
dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
),
|
||||
)
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
|
||||
23
src/apple.py
23
src/apple.py
@@ -53,16 +53,16 @@ def parse_date(s):
|
||||
|
||||
|
||||
# Only update the date if we are adding first time or if the date is lower
|
||||
def handle_version(key, version, date_text, releases):
|
||||
def handle_version(key, version, date_text, versions):
|
||||
try:
|
||||
date = parse_date(date_text)
|
||||
date_fmt = date.strftime("%Y-%m-%d")
|
||||
|
||||
if version not in releases[key]:
|
||||
releases[key][version] = date
|
||||
if version not in versions[key]:
|
||||
versions[key][version] = date
|
||||
print(f"{key}-{version}: {date_fmt}")
|
||||
elif releases[key][version] > date:
|
||||
releases[key][version] = date
|
||||
elif versions[key][version] > date:
|
||||
versions[key][version] = date
|
||||
print(f"{key}-{version}: {date_fmt} [UPDATED]")
|
||||
else:
|
||||
print(f"{key}-{version}: {date_fmt} [IGNORED]")
|
||||
@@ -71,7 +71,7 @@ def handle_version(key, version, date_text, releases):
|
||||
print(f"{key}-{version}: Failed to parse {date_text} for {version}")
|
||||
|
||||
|
||||
def parse(url, releases):
|
||||
def parse(url, versions):
|
||||
response = endoflife.fetch_url(url)
|
||||
soup = BeautifulSoup(response, features="html5lib")
|
||||
table = soup.find(id="tableWraper")
|
||||
@@ -85,18 +85,17 @@ def parse(url, releases):
|
||||
matches = re.findall(regex, version_text, re.MULTILINE)
|
||||
for version in matches:
|
||||
date_text = td_list[2].get_text().strip()
|
||||
handle_version(key, version, date_text, releases)
|
||||
handle_version(key, version, date_text, versions)
|
||||
|
||||
|
||||
print("::group::apple")
|
||||
|
||||
releases_by_product = {k: {} for k in CONFIG.keys()}
|
||||
versions_by_product = {k: {} for k in CONFIG.keys()}
|
||||
for url in URLS:
|
||||
parse(url, releases_by_product)
|
||||
parse(url, versions_by_product)
|
||||
|
||||
for k in CONFIG.keys():
|
||||
endoflife.write_releases(k, {
|
||||
v: d.strftime("%Y-%m-%d") for v, d in releases_by_product[k].items()
|
||||
})
|
||||
versions = { v: d.strftime("%Y-%m-%d") for v, d in versions_by_product[k].items() }
|
||||
endoflife.write_releases(k, versions)
|
||||
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -43,9 +43,6 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
versions = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -62,17 +62,14 @@ def fetch_releases(url, regex, template):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
t = config.get("template", DEFAULT_TAG_TEMPLATE)
|
||||
regex = config.get("regex", DEFAULT_VERSION_REGEX)
|
||||
releases = releases | fetch_releases(config[METHOD], regex, t)
|
||||
versions = versions | fetch_releases(config[METHOD], regex, t)
|
||||
|
||||
endoflife.write_releases(product_name, dict(
|
||||
# sort by version then date (asc)
|
||||
sorted(releases.items(), key=lambda x: (x[0], x[1]))
|
||||
))
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -52,4 +52,7 @@ def fetch_url(url, retry_count=5, timeout=30, data=None, headers=None, encoding=
|
||||
|
||||
def write_releases(product, releases, pathname="releases"):
|
||||
with open(f"{pathname}/{product}.json", "w") as f:
|
||||
f.write(json.dumps(releases, indent=2))
|
||||
f.write(json.dumps(dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
), indent=2))
|
||||
|
||||
@@ -29,8 +29,5 @@ for version_block in r.html.find('.versions-list'):
|
||||
print(f"{version}: {date}")
|
||||
versions[version] = date
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (asc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]))
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -70,5 +70,5 @@ def get_all_versions():
|
||||
return all_versions
|
||||
|
||||
|
||||
releases = get_all_versions()
|
||||
endoflife.write_releases('cos', releases)
|
||||
versions = get_all_versions()
|
||||
endoflife.write_releases('cos', versions)
|
||||
|
||||
@@ -52,8 +52,5 @@ for base_url in URLS:
|
||||
print(f"{version}: {date}")
|
||||
|
||||
versions = versions | FIXED_VERSIONS
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -56,11 +56,8 @@ git = Git(REPO_URL)
|
||||
git.setup()
|
||||
git.checkout("master", file_list=["english/News"])
|
||||
|
||||
all_releases = {}
|
||||
extract_major_releases(all_releases, git.repo_dir)
|
||||
extract_point_releases(all_releases, git.repo_dir)
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(all_releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
all_versions = {}
|
||||
extract_major_releases(all_versions, git.repo_dir)
|
||||
extract_point_releases(all_versions, git.repo_dir)
|
||||
endoflife.write_releases(PRODUCT, all_versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -39,15 +39,15 @@ def fetch_releases(distrowatch_id, regex, template):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
t = config.get("template", DEFAULT_TAG_TEMPLATE)
|
||||
if "regex" in config:
|
||||
regex = config["regex"]
|
||||
releases = releases | fetch_releases(config[METHOD], regex, t)
|
||||
versions = versions | fetch_releases(config[METHOD], regex, t)
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -31,14 +31,14 @@ def fetch_releases(url, regex, releases):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
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)
|
||||
fetch_releases(url, config["regex"], versions)
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -41,5 +41,6 @@ def parse_platforms_pages():
|
||||
print("::endgroup::")
|
||||
return all_versions
|
||||
|
||||
|
||||
versions = parse_platforms_pages()
|
||||
endoflife.write_releases('eks', versions)
|
||||
|
||||
@@ -158,9 +158,6 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
versions = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -37,15 +37,15 @@ def fetch_releases(product_name, url, regex, template):
|
||||
return releases
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
t = config.get("template", DEFAULT_TAG_TEMPLATE)
|
||||
regex = config.get("regex", DEFAULT_VERSION_REGEX)
|
||||
regex = regex.replace("(?<", "(?P<") # convert ruby regex to python regex
|
||||
releases = releases | fetch_releases(product_name, config[METHOD], regex, t)
|
||||
versions = versions | fetch_releases(product_name, config[METHOD], regex, t)
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -66,13 +66,13 @@ def fetch_releases(repo_id, regex):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
config = config if "regex" in config else config | {"regex": REGEX}
|
||||
releases = releases | fetch_releases(config[METHOD], config["regex"])
|
||||
versions = versions | fetch_releases(config[METHOD], config["regex"])
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -52,10 +52,7 @@ def print_releases(releases):
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
all_cycles = fetch_cycles()
|
||||
all_releases = fetch_releases(all_cycles)
|
||||
print_releases(all_releases)
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(all_releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
all_versions = fetch_releases(all_cycles)
|
||||
print_releases(all_versions)
|
||||
endoflife.write_releases(PRODUCT, all_versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -31,9 +31,6 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
versions = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -29,8 +29,5 @@ for version_block in r.html.find('.versions-list'):
|
||||
print(f"{version}: {date}")
|
||||
versions[version] = date
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (asc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]))
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -35,8 +35,5 @@ for item in rss.getElementsByTagName("entry"):
|
||||
versions[version] = date
|
||||
print(f"{version}: {date}")
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -45,15 +45,12 @@ def fetch_releases(package_identifier):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
releases = releases | fetch_releases(config[METHOD])
|
||||
versions = versions | fetch_releases(config[METHOD])
|
||||
|
||||
endoflife.write_releases(product_name, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -31,13 +31,13 @@ def fetch_releases(npm_id, regex):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
config = {"regex": REGEX} | config
|
||||
releases = releases | fetch_releases(config[METHOD], config["regex"])
|
||||
versions = versions | fetch_releases(config[METHOD], config["regex"])
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -14,7 +14,7 @@ BASE_URL = "https://portal.nutanix.com/api/v1/eol/find?type="
|
||||
|
||||
|
||||
def fetch_releases(product_code):
|
||||
releases = {}
|
||||
versions = {}
|
||||
url = BASE_URL + product_code
|
||||
print(url)
|
||||
response = endoflife.fetch_url(url)
|
||||
@@ -24,17 +24,14 @@ def fetch_releases(product_code):
|
||||
if 'GENERAL_AVAILABILITY' in version_data:
|
||||
version = version_data["version"]
|
||||
date = version_data["GENERAL_AVAILABILITY"].split("T")[0]
|
||||
releases[version] = date
|
||||
versions[version] = date
|
||||
print(f"{version}: {date}")
|
||||
|
||||
return releases
|
||||
return versions
|
||||
|
||||
|
||||
for product_name, product_code in PRODUCTS.items():
|
||||
print(f"::group::{product_name}")
|
||||
all_releases = fetch_releases(product_code)
|
||||
endoflife.write_releases(product_name, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(all_releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
all_versions = fetch_releases(product_code)
|
||||
endoflife.write_releases(product_name, all_versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -40,10 +40,7 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
all_releases = fetch_releases()
|
||||
all_releases.pop('1.0_alpha') # only version we don't want, regex not needed
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(all_releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
all_versions = fetch_releases()
|
||||
all_versions.pop('1.0_alpha') # only version we don't want, regex not needed
|
||||
endoflife.write_releases(PRODUCT, all_versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -27,12 +27,9 @@ def fetch_versions(major_version):
|
||||
|
||||
|
||||
print("::group::php")
|
||||
releases = {}
|
||||
|
||||
versions = {}
|
||||
for major_version in PHP_MAJOR_VERSIONS:
|
||||
releases |= fetch_versions(major_version)
|
||||
versions |= fetch_versions(major_version)
|
||||
|
||||
endoflife.write_releases('php', dict(sorted(
|
||||
releases.items(), key=lambda x: list(map(int, x[0].split(".")))
|
||||
)))
|
||||
endoflife.write_releases('php', versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -35,9 +35,6 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
versions = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -35,13 +35,13 @@ def fetch_releases(pypi_id, regex):
|
||||
|
||||
|
||||
def update_product(product_name, configs):
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
for config in configs:
|
||||
config = {"regex": REGEX} | config
|
||||
releases = releases | fetch_releases(config[METHOD], config["regex"])
|
||||
versions = versions | fetch_releases(config[METHOD], config["regex"])
|
||||
|
||||
endoflife.write_releases(product_name, releases)
|
||||
endoflife.write_releases(product_name, versions)
|
||||
|
||||
|
||||
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
||||
|
||||
@@ -19,7 +19,7 @@ def parse_date(d):
|
||||
|
||||
for db, url in DBS.items():
|
||||
print(f"::group::{db}")
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
response = endoflife.fetch_url(url)
|
||||
soup = BeautifulSoup(response, features="html5lib")
|
||||
@@ -37,10 +37,7 @@ for db, url in DBS.items():
|
||||
if date:
|
||||
version = m.group("v")
|
||||
print(f"{version} : {date}")
|
||||
releases[version] = date
|
||||
versions[version] = date
|
||||
|
||||
endoflife.write_releases(f"amazon-rds-{db.lower()}", dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(releases.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases(f"amazon-rds-{db.lower()}", versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -41,12 +41,6 @@ for branch in git.list_branches("refs/heads/enterprise-[4-9]*"):
|
||||
print(f"::group::{PRODUCT}")
|
||||
for version, date in versions.items():
|
||||
print(f"{version}: {date}")
|
||||
print("::endgroup::")
|
||||
|
||||
endoflife.write_releases(
|
||||
PRODUCT,
|
||||
dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
),
|
||||
)
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -31,8 +31,5 @@ for table in soup.findAll("tbody"):
|
||||
versions[version] = date
|
||||
print(f"{version}: {date}")
|
||||
|
||||
endoflife.write_releases('redhat-satellite', dict(
|
||||
# sort by date then version (desc)
|
||||
sorted(versions.items(), key=lambda x: (x[1], x[0]), reverse=True)
|
||||
))
|
||||
endoflife.write_releases('redhat-satellite', versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -28,8 +28,6 @@ def parse_markdown_table(table_text):
|
||||
|
||||
print("::group::rockylinux")
|
||||
response = endoflife.fetch_url(URL)
|
||||
|
||||
versions = parse_markdown_table(response)
|
||||
endoflife.write_releases('rockylinux', versions)
|
||||
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -58,9 +58,6 @@ def fetch_releases():
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by version then date (asc)
|
||||
sorted(releases.items(), key=lambda x: (x[0], x[1]))
|
||||
))
|
||||
versions = fetch_releases()
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -14,7 +14,7 @@ def convert_date(date: str) -> str:
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = dict()
|
||||
versions = dict()
|
||||
main = endoflife.fetch_url(URL)
|
||||
soup = BeautifulSoup(main, features="html5lib")
|
||||
|
||||
@@ -38,7 +38,7 @@ sorted_versions = sorted(
|
||||
)
|
||||
|
||||
for v in sorted_versions:
|
||||
if v in releases:
|
||||
if v in versions:
|
||||
continue # if we already know the release date, skip it
|
||||
|
||||
relnotes = endoflife.fetch_url(RELNOTES_URL_TEMPLATE.format(version=v))
|
||||
@@ -46,11 +46,8 @@ for v in sorted_versions:
|
||||
# convert x.y to x.y.0
|
||||
version = f"{version}.0" if len(version.split(".")) == 2 else version
|
||||
date = convert_date(date_str)
|
||||
releases[version] = date
|
||||
versions[version] = date
|
||||
print(f"{version}: {date}")
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by version then date (asc)
|
||||
sorted(releases.items(), key=lambda x: (x[0], x[1]))
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -5,17 +5,15 @@ PRODUCT = "typo3"
|
||||
URL = "https://get.typo3.org/api/v1/release/"
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
releases = {}
|
||||
versions = {}
|
||||
|
||||
response = endoflife.fetch_url(URL)
|
||||
data = json.loads(response)
|
||||
for v in data:
|
||||
if v['type'] != 'development':
|
||||
date = v["date"][0:10]
|
||||
releases[v["version"]] = date
|
||||
versions[v["version"]] = date
|
||||
print(f"{v['version']}: {date}")
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(sorted(
|
||||
releases.items(), key=lambda x: list(map(int, x[0].split(".")))
|
||||
)))
|
||||
endoflife.write_releases(PRODUCT, versions)
|
||||
print("::endgroup::")
|
||||
|
||||
@@ -30,14 +30,11 @@ def fetch_releases(releases, url) -> str:
|
||||
|
||||
|
||||
print(f"::group::{PRODUCT}")
|
||||
all_releases = {}
|
||||
all_versions = {}
|
||||
next_page_url = URL
|
||||
|
||||
while next_page_url:
|
||||
next_page_url = fetch_releases(all_releases, next_page_url)
|
||||
next_page_url = fetch_releases(all_versions, next_page_url)
|
||||
|
||||
endoflife.write_releases(PRODUCT, dict(
|
||||
# sort by version then date (asc)
|
||||
sorted(all_releases.items(), key=lambda x: (x[0], x[1]))
|
||||
))
|
||||
endoflife.write_releases(PRODUCT, all_versions)
|
||||
print("::endgroup::")
|
||||
|
||||
Reference in New Issue
Block a user