import urllib.request import json import re releases = {} for page in range(1, 20): url = f"https://api.github.com/repos/rancher/rancher/tags?per_page=100&page={page}" req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'}) try: data = json.loads(urllib.request.urlopen(req).read().decode()) except: break if not data: break for item in data: name = item['name'] m = re.match(r"^v(2\.\d+)\.(\d+)$", name) if m: series = m.group(1) patch = int(m.group(2)) if series not in releases or patch > releases[series]: releases[series] = patch for s in sorted(releases.keys(), key=lambda x: [int(p) for p in x.split('.')]): print(f"Series v{s}: latest patch is v{s}.{releases[s]}")