From 5fdbe07f12e80c1bad47a3d868e99a74ccf79779 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sun, 2 Nov 2025 18:45:37 +0100 Subject: [PATCH] fix: add --set-upstream --- .gitea/workflows/sync.yaml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/sync.yaml b/.gitea/workflows/sync.yaml index 0a2c7eb..505273a 100644 --- a/.gitea/workflows/sync.yaml +++ b/.gitea/workflows/sync.yaml @@ -26,27 +26,31 @@ jobs: MIRROR_URL: ${{ secrets.MIRROR_REPO_URL }} MIRROR_TOKEN: ${{ secrets.MIRROR_REPO_TOKEN }} run: | + # Clean variables (remove potential whitespace/newlines) + CLEAN_MIRROR_URL=$(echo "$MIRROR_URL" | tr -d '[:space:]') + CLEAN_USER=$(echo "$GIT_USER_NAME" | tr -d '[:space:]') + CLEAN_TOKEN=$(echo "$MIRROR_TOKEN" | tr -d '[:space:]') + # URL encode special characters in credentials - ENCODED_USER=$(printf %s "$GIT_USER_NAME" | jq -sRr @uri) - ENCODED_TOKEN=$(printf %s "$MIRROR_TOKEN" | jq -sRr @uri) + ENCODED_USER=$(printf %s "$CLEAN_USER" | jq -sRr @uri) + ENCODED_TOKEN=$(printf %s "$CLEAN_TOKEN" | jq -sRr @uri) # Build authenticated URL - if [[ "$MIRROR_URL" == https://* ]]; then + if [[ "$CLEAN_MIRROR_URL" == https://* ]]; then # URL with https protocol - CLEAN_URL="${MIRROR_URL#https://}" + CLEAN_URL="${CLEAN_MIRROR_URL#https://}" AUTH_URL="https://${ENCODED_USER}:${ENCODED_TOKEN}@${CLEAN_URL}" - elif [[ "$MIRROR_URL" == http://* ]]; then + elif [[ "$CLEAN_MIRROR_URL" == http://* ]]; then # URL with http protocol - CLEAN_URL="${MIRROR_URL#http://}" + CLEAN_URL="${CLEAN_MIRROR_URL#http://}" AUTH_URL="http://${ENCODED_USER}:${ENCODED_TOKEN}@${CLEAN_URL}" else # URL without protocol - AUTH_URL="https://${ENCODED_USER}:${ENCODED_TOKEN}@${MIRROR_URL}" + AUTH_URL="https://${ENCODED_USER}:${ENCODED_TOKEN}@${CLEAN_MIRROR_URL}" fi - echo $AUTH_URL # Add mirror remote with authentication git remote add mirror "$AUTH_URL" # Push to mirror - git push mirror main --force + git push --set-upstream mirror main --force