|
- import sys
- import os
- import requests
- import json
- import os
- import subprocess
-
- 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])
-
- data = grab(url)
-
- if data:
- spec = data[0]["tag_name"] + "..master"
- else:
- spec = "master"
-
- output = subprocess.check_output(["git", "log", r"--pretty=format:%aI%x00%s%x00%b%x00", spec]).decode("utf-8").split("\x00")
-
- data = []
-
- # last item is an empty string
- for i in range(0, len(output)-1, 3):
- entry = {}
- entry["date"] = output[i].strip()
- entry["date"] = datetime.fromisoformat(entry["date"]).strftime("%B %d")
- entry["subject"] = output[i+1].strip()
- entry["body"] = output[i+2].strip()
- data.append(entry)
-
- with open(sys.argv[2], "w", encoding="utf-8") as file:
- json.dump(data, file)
|