79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
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()
|