28 lines
822 B
Python
28 lines
822 B
Python
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]}")
|
|
|