Files
aios/ops/gitops-migration/fix_gitea_repo_push.sh
T

54 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="/data/aios-gitops"
WORKSPACE="$ROOT/workspace"
GITEA_BIN="$ROOT/runtime/bin/gitea"
GITEA_HOME="$ROOT/runtime/gitea-bin"
SECRETS="$ROOT/runtime/secrets"
LOG="$ROOT/logs/gitea-repo-push-fix.log"
mkdir -p "$ROOT/logs"
exec > >(tee -a "$LOG") 2>&1
admin_user="aios"
admin_pass="$(cat "$SECRETS/gitea-admin-password")"
echo "== endpoint probe =="
for path in / /git/ /api/v1/version /git/api/v1/version /user/login /git/user/login; do
echo "== ${path} =="
curl -sS -i --max-time 8 "http://127.0.0.1:3000${path}" 2>&1 | sed -n '1,18p'
done
echo "== ensure admin user =="
"$GITEA_BIN" admin user create \
--config "$GITEA_HOME/custom/conf/app.ini" \
--username "$admin_user" \
--password "$admin_pass" \
--email "gitops-bot@cnnetmkt.top" \
--admin \
--must-change-password=false 2>/dev/null || true
echo "== create repo by internal API =="
if ! curl -fsS -u "$admin_user:$admin_pass" "http://127.0.0.1:3000/api/v1/repos/$admin_user/aios-v23" >/dev/null 2>&1; then
curl -fsS -u "$admin_user:$admin_pass" \
-H "Content-Type: application/json" \
-d '{"name":"aios-v23","description":"AIOS V1R1C0 online GitOps baseline","private":false,"auto_init":false,"default_branch":"main"}' \
"http://127.0.0.1:3000/api/v1/user/repos" >/dev/null
fi
curl -fsS -u "$admin_user:$admin_pass" "http://127.0.0.1:3000/api/v1/repos/$admin_user/aios-v23" | python3 -m json.tool | sed -n '1,80p'
echo "== push main and tags =="
cd "$WORKSPACE"
push_url="http://${admin_user}:${admin_pass}@127.0.0.1:3000/${admin_user}/aios-v23.git"
git push "$push_url" main
git push "$push_url" --tags
git remote remove origin 2>/dev/null || true
git remote add origin "https://cnnetmkt.top/git/${admin_user}/aios-v23.git"
echo "== verify repo page =="
curl -fsS "http://127.0.0.1:3000/${admin_user}/aios-v23" | grep -E "aios-v23|AIOS|V1R1C0" | head -30 || true
git remote -v
git log --oneline -8
git status --short
echo "GITEA_REPO_PUSH_OK"