tools: update upload asset to 'update release's msg' with 'ISO hash'

This commit is contained in:
komeil Parseh 2023-02-26 21:52:35 +03:30
parent f61146d0df
commit 421d5c3c71
No known key found for this signature in database
GPG key ID: 1928AF673B1C4255

View file

@ -1,8 +1,10 @@
import hashlib
import logging
import os
import sys
from datetime import datetime
from pathlib import Path
from github import Github
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
@ -10,7 +12,21 @@ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
api_key = os.getenv("api_key", None)
current_date = datetime.today().strftime("%Y-%m-%d")
path = list(Path().cwd().glob("out/*.iso"))[0].as_posix()
def _compute_sha256(file_name):
hash_sha256 = hashlib.sha256()
with open(file_name, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_sha256.update(chunk)
return hash_sha256.hexdigest()
_path = list(Path().cwd().glob("out/*.iso"))[0]
path = _path.posix_path()
file_name = _path.name
hash = _compute_sha256(path)
repo_name = os.getenv("name", None)
release_name = os.getenv("release_name", None)
@ -26,7 +42,8 @@ if not (repo_name and api_key and release_name):
gh = Github(api_key)
repo = gh.get_repo(f"parchlinux/{repo_name}")
print(repo_name, api_key)
repo = gh.get_repo(f"parchlinux/parch-iso-cinnamon")
release = repo.get_release(release_name)
@ -34,3 +51,15 @@ logging.info("statrting Upload ISO to release")
release.upload_asset(path=path)
logging.info("ISO upload is done")
# update release
msg = (
release.body
+ f"""
| name | sha256 |
| :---: | :---: |
| {file_name} | {hash} |"""
)
logging.info("Starting Update release msg with: \n %s" % msg)
release.update_release(name=release.tag_name, message=msg)
logging.info("Release Update is done.")