Files
endoflife-date-release-data/src/chef-inspec.py
Marc Wrobel f238224681 [chef-inspec] Use GitHub releases instead of git tags (#367)
GitHub releases gives better dates than git tags.
2024-08-13 22:20:36 +02:00

20 lines
963 B
Python

from bs4 import BeautifulSoup
from common import dates, github, http, releasedata
"""Fetch released versions from docs.chef.io and retrieve their date from GitHub.
docs.chef.io needs to be scraped because not all tagged versions are actually released.
More context on https://github.com/endoflife-date/endoflife.date/pull/4425#discussion_r1447932411.
"""
with releasedata.ProductData("chef-inspec") as product_data:
rn_response = http.fetch_url("https://docs.chef.io/release_notes_inspec/")
rn_soup = BeautifulSoup(rn_response.text, features="html5lib")
released_versions = [h2.get('id') for h2 in rn_soup.find_all('h2', id=True) if h2.get('id')]
for release in github.fetch_releases("inspec/inspec"):
sanitized_version = release.tag_name.replace("v", "")
if sanitized_version in released_versions:
date = dates.parse_datetime(release.published_at)
product_data.declare_version(sanitized_version, date)