ci: do not fail release when Gitea token lacks permissions

This commit is contained in:
2026-05-02 22:19:56 +02:00
parent c10249d171
commit 84125ef688
+27 -18
View File
@@ -157,6 +157,7 @@ jobs:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: | run: |
python3 - <<'PY' python3 - <<'PY'
import sys
import json import json
import os import os
import urllib.error import urllib.error
@@ -186,23 +187,31 @@ jobs:
return json.loads(resp.read().decode("utf-8")) return json.loads(resp.read().decode("utf-8"))
try: try:
release = request("GET", f"/repos/{repo}/releases/tags/{tag}") try:
rid = release["id"] release = request("GET", f"/repos/{repo}/releases/tags/{tag}")
request("PATCH", f"/repos/{repo}/releases/{rid}", {"body": body}) rid = release["id"]
print(f"Updated existing Gitea release id={rid} for tag {tag}") request("PATCH", f"/repos/{repo}/releases/{rid}", {"body": body})
print(f"Updated existing Gitea release id={rid} for tag {tag}")
except urllib.error.HTTPError as e:
if e.code == 404:
created = request(
"POST",
f"/repos/{repo}/releases",
{
"tag_name": tag,
"name": tag,
"body": body,
"draft": False,
"prerelease": False,
},
)
print(f"Created Gitea release id={created['id']} for tag {tag}")
elif e.code in (401, 403):
print("::warning::Gitea release sync skipped: token unauthorized/forbidden. Check GITEA_TOKEN permissions (Repository Read+Write).")
sys.exit(0)
else:
raise
except urllib.error.HTTPError as e: except urllib.error.HTTPError as e:
if e.code != 404: print(f"::warning::Gitea release sync skipped due to HTTP {e.code}: {e.reason}")
raise sys.exit(0)
created = request(
"POST",
f"/repos/{repo}/releases",
{
"tag_name": tag,
"name": tag,
"body": body,
"draft": False,
"prerelease": False,
},
)
print(f"Created Gitea release id={created['id']} for tag {tag}")
PY PY