ci: do not fail release when Gitea token lacks permissions
This commit is contained in:
@@ -157,6 +157,7 @@ jobs:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
run: |
|
||||
python3 - <<'PY'
|
||||
import sys
|
||||
import json
|
||||
import os
|
||||
import urllib.error
|
||||
@@ -185,14 +186,14 @@ jobs:
|
||||
with urllib.request.urlopen(req) as resp:
|
||||
return json.loads(resp.read().decode("utf-8"))
|
||||
|
||||
try:
|
||||
try:
|
||||
release = request("GET", f"/repos/{repo}/releases/tags/{tag}")
|
||||
rid = release["id"]
|
||||
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:
|
||||
raise
|
||||
if e.code == 404:
|
||||
created = request(
|
||||
"POST",
|
||||
f"/repos/{repo}/releases",
|
||||
@@ -205,4 +206,12 @@ jobs:
|
||||
},
|
||||
)
|
||||
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:
|
||||
print(f"::warning::Gitea release sync skipped due to HTTP {e.code}: {e.reason}")
|
||||
sys.exit(0)
|
||||
PY
|
||||
|
||||
Reference in New Issue
Block a user