Make the script more readable, mostly by: - using the Product and AutoConfig classes, - removing the use of functions when unnecessary, - a little bit of renaming and documentation. Note that this also changed the module used for regexes in endoflife.py. The regex module is now used because the Python re module does not support identically named groups (as used in the mariadb product). The regex module being backwards-compatible with the standard re module, this should not be an issue.
28 lines
912 B
Python
28 lines
912 B
Python
import sys
|
|
from common import dates
|
|
from common import endoflife
|
|
from common.git import Git
|
|
|
|
"""Fetches versions from tags in a git repository. This replace the old update.rb script."""
|
|
|
|
METHOD = 'git'
|
|
|
|
p_filter = sys.argv[1] if len(sys.argv) > 1 else None
|
|
for product_name, configs in endoflife.list_products(METHOD, p_filter).items():
|
|
print(f"::group::{product_name}")
|
|
product = endoflife.Product(product_name, load_product_data=True)
|
|
for config in product.get_auto_configs(METHOD):
|
|
git = Git(config.url)
|
|
git.setup(bare=True)
|
|
|
|
tags = git.list_tags()
|
|
for tag, date_str in tags:
|
|
version_match = config.first_match(tag)
|
|
if version_match:
|
|
version = config.render(version_match)
|
|
date = dates.parse_date(date_str)
|
|
product.declare_version(version, date)
|
|
|
|
product.write()
|
|
print("::endgroup::")
|