diff --git a/scripts/gitea/__init__.py b/scripts/gitea/__init__.py index 3a8999e..1fd8b73 100644 --- a/scripts/gitea/__init__.py +++ b/scripts/gitea/__init__.py @@ -1,4 +1,5 @@ from .config import GiteaConfig from .api import GiteaApi +from .utils import GiteaUtils -__all__ = ["GiteaConfig", "GiteaApi"] +__all__ = ["GiteaConfig", "GiteaApi", "GiteaUtils"] diff --git a/scripts/gitea/__pycache__/__init__.cpython-312.pyc b/scripts/gitea/__pycache__/__init__.cpython-312.pyc index fbeb561..81e1f91 100644 Binary files a/scripts/gitea/__pycache__/__init__.cpython-312.pyc and b/scripts/gitea/__pycache__/__init__.cpython-312.pyc differ diff --git a/scripts/gitea/__pycache__/utils.cpython-312.pyc b/scripts/gitea/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000..0cb863a Binary files /dev/null and b/scripts/gitea/__pycache__/utils.cpython-312.pyc differ diff --git a/scripts/gitea/utils.py b/scripts/gitea/utils.py new file mode 100644 index 0000000..562a963 --- /dev/null +++ b/scripts/gitea/utils.py @@ -0,0 +1,57 @@ +import giteapy +from datetime import datetime +from .config import GiteaConfig +from .api import GiteaApi + + +class GiteaUtils: + def __init__(self, gitea_instance: GiteaApi): + self.config = GiteaConfig().configuration + self.repo_instance = gitea_instance.repo_gitea_instance() + + def update_release(self, **params): + try: + self.repo_instance.repo_edit_release( + owner=params["owner"], + repo=params["repo"], + id=params["release_id"], # Release ID + body=giteapy.EditReleaseOption( + name=f"Bifrost Registry {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" + ), + ) + print("Update release success") + except Exception as e: + print(f"Update release failed: {e}") + + def get_release(self, **params): + try: + return self.repo_instance.repo_get_release( + owner=params["owner"], + repo=params["repo"], + id=params["release_id"], # Release ID + ) + except Exception as e: + print(f"Get release failed: {e}") + return None + + def delete_release_attachment(self, **params): + try: + self.repo_instance.repo_delete_release_attachment( + owner=params["owner"], + repo=params["repo"], + id=params["release_id"], # Release ID + attachment_id=params["attachment_id"], + ) + except Exception as e: + print(f"Delete release attachment failed: {e}") + + def create_release_attachment(self, **params): + try: + self.repo_instance.repo_create_release_attachment( + owner=params["owner"], + repo=params["repo"], + id=params["release_id"], # Release ID + attachment=params["attachment_path"], + ) + except Exception as e: + print(f"Create release attachment failed: {e}") diff --git a/scripts/main.py b/scripts/main.py index 88f6486..26ecd42 100644 --- a/scripts/main.py +++ b/scripts/main.py @@ -5,52 +5,12 @@ import os import json from datetime import datetime - -def update_release(repo_instance, **params): - try: - repo_instance.repo_edit_release( - owner=params["owner"], - repo=params["repo"], - id=params["release_id"], # Release ID - body=giteapy.EditReleaseOption( - name=f"Bifrost Registry {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" - ), - ) - print("Update release success") - except Exception as e: - print(f"Update release failed: {e}") - - -def get_release(repo_instance, **params): - return repo_instance.repo_get_release( - owner=params["owner"], - repo=params["repo"], - id=params["release_id"], # Release ID - ) - - -def delete_release_attachment(repo_instance, **params): - repo_instance.repo_delete_release_attachment( - owner=params["owner"], - repo=params["repo"], - id=params["release_id"], # Release ID - attachment_id=params["attachment_id"], - ) - - -def create_release_attachment(repo_instance, **params): - repo_instance.repo_create_release_attachment( - owner=params["owner"], - repo=params["repo"], - id=params["release_id"], # Release ID - attachment=params["attachment_path"], - ) +from gitea import GiteaUtils def main(): gitea_instance = GiteaApi() - admin_instance = gitea_instance.admin_gitea_instance() - repo_instance = gitea_instance.repo_gitea_instance() + gitea_utils = GiteaUtils(gitea_instance) current_file_path = os.path.abspath(__file__) # Parameters owner = "CDN" @@ -65,13 +25,13 @@ def main(): "release_id": release_id, "attachment_path": attachment_path, } - assets = get_release(repo_instance, **params).assets - update_release(repo_instance, **params) + assets = gitea_utils.get_release(**params).assets + gitea_utils.update_release(**params) for asset in assets: if asset.name == "registry.zip": params["attachment_id"] = asset.id - delete_release_attachment(repo_instance, **params) - create_release_attachment(repo_instance, **params) + gitea_utils.delete_release_attachment(**params) + gitea_utils.create_release_attachment(**params) if __name__ == "__main__":