Skip to content

Commit

Permalink
fix: find grafana releases for latest 3 major versions
Browse files Browse the repository at this point in the history
  • Loading branch information
Nemental committed Apr 5, 2024
1 parent a3056e9 commit 955ad32
Showing 1 changed file with 13 additions and 14 deletions.
27 changes: 13 additions & 14 deletions hacking/find_grafana_versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,31 @@
def get_by_major(version):
if version.startswith("v"):
version = version[1:]
return (version[0], version, int(version.replace(".", "")))
return int(version.split(".")[0]), version, tuple(map(int, version.split(".")))


def get_grafana_releases():
r = requests.get(
"https://api.github.com/repos/grafana/grafana/releases?per_page=50",
"https://api.github.com/repos/grafana/grafana/releases?per_page=100",
headers={"Accept": "application/vnd.github.v3+json"},
)
if r.status_code != 200:
raise Exception("Failed to get releases from GitHub")
return r.json()


by_major = {}

if __name__ == "__main__":
releases = get_grafana_releases()
for item in releases:
if item.get("prerelease"):
by_major = {}

for release in releases:
if release.get("prerelease"):
continue
major, version, as_int = get_by_major(item.get("tag_name"))
if major not in by_major.keys() or by_major[major]["as_int"] < as_int:
by_major[major] = {"version": version, "as_int": as_int}
latest_3_majors = sorted(list(by_major.keys()), reverse=True)[:3]

latest_releases = []
for idx in latest_3_majors:
latest_releases.append(by_major[idx]["version"])
major, version, as_tuple = get_by_major(release.get("tag_name"))
if major not in by_major.keys() or by_major[major]["as_tuple"] < as_tuple:
by_major[major] = {"version": version, "as_tuple": as_tuple}

latest_3_majors = sorted(list(by_major.keys()))[:3]
latest_releases = [by_major[idx]["version"] for idx in latest_3_majors]

print(json.dumps(latest_releases))

0 comments on commit 955ad32

Please sign in to comment.