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