import sys import os import requests import json import os from datetime import datetime TOKEN = os.environ["GITEA_API_KEY"] def grab(url): r = requests.get(url, headers = { "authorization": "token " + TOKEN }) if r.status_code != 200: print(url) print("oops...") print(r.text) sys.exit(1) return json.loads(r.text) url = "https://git.crux.best/api/v1/repos/chemicalcrux/{0}/releases".format(sys.argv[1]) tag = grab(url)[0]["tag_name"] url = "https://git.crux.best/api/v1/repos/chemicalcrux/{0}/commits?sha={1}".format(sys.argv[1], tag) data = grab(url)[1:] results = [] for commit in data: result = {} lines = commit["commit"]["message"].split("\n") subject = lines[0] body = "\n".join(lines[2:]) result["date"] = datetime.fromisoformat(commit["commit"]["author"]["date"]).strftime("%B %d") result["subject"] = subject result["body"] = body results.append(result) with open(sys.argv[2], "w", encoding="utf-8") as file: json.dump(results[::-1], file)