From 3769f72d545ca51888ed7e0d10dc63aa890a66d2 Mon Sep 17 00:00:00 2001 From: EnotAdmin Date: Mon, 5 May 2025 20:35:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20.woodpecker/sync-releases.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker/sync-releases.sh | 50 +++++------------------------------- 1 file changed, 6 insertions(+), 44 deletions(-) diff --git a/.woodpecker/sync-releases.sh b/.woodpecker/sync-releases.sh index 384a71b..ac061a2 100644 --- a/.woodpecker/sync-releases.sh +++ b/.woodpecker/sync-releases.sh @@ -61,51 +61,13 @@ while IFS= read -r repo_pair || [[ -n "$repo_pair" ]]; do echo "Fetching Gitea releases..."; GITEA_RELEASES_JSON=$(curl -sf --fail -H "$GITEA_AUTH_HEADER" "${FETCH_GITEA_URL}") || { echo "Error Gitea fetch: $GITEA_REPO_PATH"; continue; } EXISTING_GITEA_TAGS=$(echo "$GITEA_RELEASES_JSON" | jq -r '.[].tag_name') - - # --- Отладка запроса к GitHub --- + + # Запрос к GitHub API (возвращаем -sf --fail) FETCH_GITHUB_URL="${GITHUB_API_URL}/repos/${GITHUB_REPO_PATH}/releases?per_page=20" - echo "DEBUG: Fetch GitHub Releases URL: ${FETCH_GITHUB_URL}" - echo "Fetching GitHub releases (with verbose output)..."; - # Запускаем curl с -v для подробного вывода, БЕЗ -f и -s, чтобы увидеть ответ - # Сохраняем и тело, и ошибки в переменные - GITHUB_RESPONSE=$(curl -v -H "$GITHUB_AUTH_HEADER" "${FETCH_GITHUB_URL}" 2>&1) # 2>&1 перенаправляет stderr в stdout - GITHUB_CURL_EXIT_CODE=$? # Сохраняем код выхода curl - - echo "--- GitHub curl Response Start ---" - echo "$GITHUB_RESPONSE" # Печатаем весь вывод curl -v - echo "--- GitHub curl Response End ---" - echo "GitHub curl exit code: $GITHUB_CURL_EXIT_CODE" - - # Проверяем код выхода curl - if [ $GITHUB_CURL_EXIT_CODE -ne 0 ]; then - echo "Error: curl command to GitHub failed with exit code $GITHUB_CURL_EXIT_CODE. Skipping repo $GITHUB_REPO_PATH." - continue - fi - - # Пытаемся извлечь тело ответа (может быть сложно из-за вывода -v) - # Попробуем просто проверить, содержит ли ответ HTTP/1.1 200 OK или HTTP/2 200 - if ! echo "$GITHUB_RESPONSE" | grep -q -E '(HTTP/(1\.1|2) 200 OK|HTTP/(1\.1|2) 200)'; then - echo "Error: GitHub API did not return HTTP 200 OK. Skipping repo $GITHUB_REPO_PATH." - # Дополнительный вывод при ошибке статуса - echo "Received status was:" - echo "$GITHUB_RESPONSE" | grep -E '^< HTTP/' - continue - fi - - # Если все ок, пытаемся извлечь JSON (может потребовать доработки, если -v мешает) - # Простой вариант: считаем, что если код 200, то JSON в конце - GITHUB_RELEASES_JSON=$(echo "$GITHUB_RESPONSE" | awk '/^{|^\[/{f=1} f') # Пытаемся извлечь JSON с начала строки { или [ - - if [ -z "$GITHUB_RELEASES_JSON" ]; then - echo "Warning: GitHub API returned HTTP 200 OK, but failed to extract JSON body. Response was:" - echo "$GITHUB_RESPONSE" - echo "Skipping repo $GITHUB_REPO_PATH." - continue - fi - - echo "Successfully fetched GitHub releases JSON." - # --- Конец отладки запроса к GitHub --- - + echo "DEBUG: Fetch GitHub Releases URL: ${FETCH_GITHUB_URL}" # Отладка URL полезна + echo "Fetching GitHub releases..."; + GITHUB_RELEASES_JSON=$(curl -sf --fail -H "$GITHUB_AUTH_HEADER" "${FETCH_GITHUB_URL}") || { echo "Error GitHub fetch: $GITHUB_REPO_PATH"; continue; } + # --- Конец запроса к GitHub --- echo "$GITHUB_RELEASES_JSON" | jq -c '.[] | select(.draft == false)' | tac | while IFS= read -r release_json; do TAG_NAME=$(echo "$release_json" | jq -r '.tag_name')