- remove the use of environment variables to get directory paths, - make use of arguments / argparse instead of environment variables in `update.py` and `report.py`, - automatically guess the data directory in `latest.py` based on the script's location, - propagate log level to auto scripts, - move `list_configs_from_argv` from `endoflife` module to `releasedata` module, - use `list_products` in `latest.py` to load the product's frontmatters.
28 lines
1.5 KiB
Python
28 lines
1.5 KiB
Python
import re
|
|
|
|
from common import dates, http, releasedata
|
|
|
|
# https://regex101.com/r/zPxBqT/1
|
|
VERSION_PATTERN = re.compile(r"\d.\d+\.\d+-gke\.\d+")
|
|
URL_BY_PRODUCT = {
|
|
"google-kubernetes-engine": "https://cloud.google.com/kubernetes-engine/docs/release-notes-nochannel",
|
|
"google-kubernetes-engine-stable": "https://cloud.google.com/kubernetes-engine/docs/release-notes-stable",
|
|
"google-kubernetes-engine-regular": "https://cloud.google.com/kubernetes-engine/docs/release-notes-regular",
|
|
"google-kubernetes-engine-rapid": "https://cloud.google.com/kubernetes-engine/docs/release-notes-rapid",
|
|
}
|
|
|
|
for config in releasedata.list_configs_from_argv(): # noqa: B007 multiple JSON produced for historical reasons
|
|
for product_name, url in URL_BY_PRODUCT.items():
|
|
with releasedata.ProductData(product_name) as product_data:
|
|
html = http.fetch_html(url)
|
|
|
|
for section in html.find_all('section', class_='releases'):
|
|
for h2 in section.find_all('h2'): # h2 contains the date
|
|
date = dates.parse_date(h2.get('data-text'))
|
|
|
|
next_div = h2.find_next('div') # The div next to the h2 contains the notes about changes made on that date
|
|
for li in next_div.find_all('li'):
|
|
if "versions are now available" in li.text:
|
|
for version in VERSION_PATTERN.findall(li.find('ul').text):
|
|
product_data.declare_version(version, date)
|