From c7c330ad8c8b05d6ce718e1750171f62634d075c Mon Sep 17 00:00:00 2001 From: Tracewebstudio Dev Date: Thu, 30 Apr 2026 19:59:50 +0200 Subject: [PATCH] fix(ci): correct yaml-safe gitea API fallback script --- .github/workflows/sync-to-gitea.yml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/sync-to-gitea.yml b/.github/workflows/sync-to-gitea.yml index b36a70d..7e6cc40 100644 --- a/.github/workflows/sync-to-gitea.yml +++ b/.github/workflows/sync-to-gitea.yml @@ -50,27 +50,30 @@ jobs: if [ -z "$TARGET_URL" ]; then echo "Owner guess failed; searching accessible repos via Gitea API" API_URL="https://${GITEA_HOST}/api/v1/repos/search?q=${REPO_NAME}&limit=100" - TARGET_URL=$(python3 - <<'PY' + TARGET_URL="$(python3 - <<'PY' import json import os import urllib.request -api_url = os.environ["API_URL"] -token = os.environ["GITEA_TOKEN"] -repo_name = os.environ["REPO_NAME"] -username = os.environ["GITEA_USERNAME"] - -req = urllib.request.Request(api_url, headers={"Authorization": f"token {token}"}) +req = urllib.request.Request( + os.environ["API_URL"], + headers={"Authorization": f"token {os.environ['GITEA_TOKEN']}"}, +) with urllib.request.urlopen(req, timeout=20) as resp: - data = json.loads(resp.read().decode("utf-8")) + payload = json.loads(resp.read().decode("utf-8")) -for repo in data.get("data", []): +repo_name = os.environ["REPO_NAME"].lower() +username = os.environ["GITEA_USERNAME"] +host = os.environ["GITEA_HOST"] +token = os.environ["GITEA_TOKEN"] + +for repo in payload.get("data", []): full_name = str(repo.get("full_name", "")) - if full_name.lower().endswith("/" + repo_name.lower()): - print(f"https://{username}:{token}@{os.environ['GITEA_HOST']}/{full_name}.git") + if full_name.lower().endswith("/" + repo_name): + print(f"https://{username}:{token}@{host}/{full_name}.git") break PY -) +)" if [ -n "$TARGET_URL" ]; then echo "Resolved Gitea target via API" fi