From a752daff3d8a8b50e51b9cd176400e604cbcd83f Mon Sep 17 00:00:00 2001 From: andwati Date: Tue, 18 Aug 2026 16:30:44 +0300 Subject: [PATCH] Refactor mirror script to streamline repo processing and improve payload construction --- mirror-github-to-gitea.sh | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/mirror-github-to-gitea.sh b/mirror-github-to-gitea.sh index 231c988..3d24def 100644 --- a/mirror-github-to-gitea.sh +++ b/mirror-github-to-gitea.sh @@ -26,7 +26,7 @@ done total=$(echo "$repos_json" | jq 'length') echo "Found ${total} repos on GitHub for ${GITHUB_USER}" -echo "$repos_json" | jq -c '.[] | {name, private}' | while read -r entry; do +while read -r entry; do name=$(echo "$entry" | jq -r '.name') private=$(echo "$entry" | jq -r '.private') @@ -62,23 +62,29 @@ echo "$repos_json" | jq -c '.[] | {name, private}' | while read -r entry; do continue fi + payload=$(jq -n \ + --arg clone_addr "https://github.com/${GITHUB_USER}/${name}.git" \ + --arg repo_name "$name" \ + --arg repo_owner "$GITEA_OWNER" \ + --arg mirror_interval "$MIRROR_INTERVAL" \ + --argjson private "$private" \ + --arg auth_token "$GITHUB_TOKEN" \ + '{ + clone_addr: $clone_addr, + repo_name: $repo_name, + repo_owner: $repo_owner, + mirror: true, + mirror_interval: $mirror_interval, + private: $private, + service: "github", + auth_token: $auth_token + }') + http_code=$(curl -s -o /tmp/gitea_migrate_resp.json -w "%{http_code}" \ -X POST "${GITEA_URL}/api/v1/repos/migrate" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ - -d @- <