From 4fb1df89d0669640836783c44235d21c54a686e4 Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Sun, 26 Mar 2023 19:43:00 +0100 Subject: [PATCH] Add script to upload output to generic registry --- README.md | 2 ++ upload.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 upload.py diff --git a/README.md b/README.md index 4e762c2..454481e 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,5 @@ Custom scripts to rebrand Gitea to my liking, mostly in images. See also [Customizing Gitea](https://docs.gitea.io/en-us/customizing-gitea/). + +[Download](https://gitea.theorangeone.net/api/packages/sys/generic/gitea-branding/latest/branding.zip) diff --git a/upload.py b/upload.py new file mode 100644 index 0000000..5afed22 --- /dev/null +++ b/upload.py @@ -0,0 +1,42 @@ +import requests +from pathlib import Path +from resize import OUTPUT_DIR +import os +import zipfile +from io import BytesIO + +ARTIFACT_NAME = "branding.zip" +OWNER = "sys" +PACKAGE_NAME = "gitea-branding" + + +def main(): + gitea_url = os.environ["GITEA_URL"] + gitea_token = os.environ["GITEA_TOKEN"] + + session = requests.Session() + session.headers["Authorization"] = f"token {gitea_token}" + + print("Building archive...") + archive = BytesIO() + with zipfile.ZipFile(archive, "w") as zip_file: + for output_file in OUTPUT_DIR.rglob("*.*"): + zip_file.writestr(output_file.name, output_file.read_bytes()) + + archive.seek(0) + + print("Deleting existing...") + delete_response = session.delete(f"{gitea_url}/api/packages/{OWNER}/generic/{PACKAGE_NAME}/latest/{ARTIFACT_NAME}") + + # 404 means we've not uploaded it yet. + if delete_response.status_code != 404: + delete_response.raise_for_status() + + print("Uploading...") + response = session.put(f"{gitea_url}/api/packages/{OWNER}/generic/{PACKAGE_NAME}/latest/{ARTIFACT_NAME}", files={ARTIFACT_NAME: archive}) + response.raise_for_status() + + + +if __name__ == "__main__": + main()