from gitea.api import GiteaApi from gitea.config import GiteaConfig import giteapy 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"], ) def main(): gitea_instance = GiteaApi() admin_instance = gitea_instance.admin_gitea_instance() repo_instance = gitea_instance.repo_gitea_instance() current_file_path = os.path.abspath(__file__) # Parameters owner = "CDN" repo = "bifrost-registry" release_id = 8845 attachment_path = os.path.abspath( os.path.join(os.path.dirname(current_file_path), "..", "registry.zip") ) params = { "owner": owner, "repo": repo, "release_id": release_id, "attachment_path": attachment_path, } assets = get_release(repo_instance, **params).assets update_release(repo_instance, **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) if __name__ == "__main__": main()