🎉 init: 小龙的工作空间

This commit is contained in:
大海
2026-06-06 10:40:48 +08:00
commit a188ee1426
3201 changed files with 231817 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
#!/usr/bin/env bash
# sync-agent-repos.sh — 同步 GitHub Agent 框架到 Gitea(排除大资源文件)
set -eo pipefail
GITEA="https://git666.u7f.cn"
GITEA_USER="sawz"
GITEA_PASS="45324622ww"
GITEA_ORG="Github"
PROXY="socks5://127.0.0.1:12002"
WORK_DIR="/tmp/gitea-sync"
mkdir -p "$WORK_DIR"
REPO_LIST=(
"MetaGPT|FoundationAgents/MetaGPT"
"CrewAI|crewAIInc/crewAI"
"AutoGen|microsoft/autogen"
"Mastra|mastra-ai/mastra"
"MCP-Use|mcp-use/mcp-use"
"RagaAI-Catalyst|raga-ai-hub/RagaAI-Catalyst"
)
EXCLUDE_PATTERNS=(
"*.gif" "*.mp4" "*.mov" "*.avi" "*.webm" "*.webp"
"*.png" "*.jpg" "*.jpeg" "*.svg" "*.ico"
"*.woff" "*.woff2" "*.ttf" "*.eot"
"*.zip" "*.tar" "*.gz" "*.bz2" "*.7z" "*.rar"
"*.pdf" "*.whl" "*.egg" "*.jar"
"docs/images/*" "docs/*/images/*" "static/images/*"
)
sync_repo() {
local name="$1" github_path="$2" clone_dir="$WORK_DIR/$name"
echo "=== [$name] ==="
# 检查是否已存在
if curl -sf -u "$GITEA_USER:$GITEA_PASS" "$GITEA/api/v1/repos/$GITEA_ORG/$name" >/dev/null 2>&1; then
# 增量更新
local remote_sha=$(curl -sf --proxy "$PROXY" "https://api.github.com/repos/$github_path" 2>/dev/null | python3 -c "import json,sys; print(json.load(sys.stdin).get('pushed_at',''))" 2>/dev/null)
local local_sha=$(curl -sf -u "$GITEA_USER:$GITEA_PASS" "$GITEA/api/v1/repos/$GITEA_ORG/$name/commits?limit=1" 2>/dev/null | python3 -c "import json,sys; d=json.load(sys.stdin); print(d[0]['commit']['committer']['date'] if d else '')" 2>/dev/null)
if [ "$remote_sha" = "$local_sha" ] 2>/dev/null; then
echo " ️ 无更新"; return 0
fi
echo " 🔄 检测到更新,重新同步..."
curl -sf -u "$GITEA_USER:$GITEA_PASS" -X DELETE "$GITEA/api/v1/repos/$GITEA_ORG/$name" >/dev/null 2>&1
fi
rm -rf "$clone_dir"
echo " 📥 克隆中..."
GIT_HTTP_PROXY="$PROXY" git clone --depth=1 "https://github.com/$github_path.git" "$clone_dir" 2>/dev/null
cd "$clone_dir"
echo " 🧹 排除大文件..."
for p in "${EXCLUDE_PATTERNS[@]}"; do
find . -not -path './.git/*' -name "$p" -type f -delete 2>/dev/null
done
find . -not -path './.git/*' -type d -empty -delete 2>/dev/null
curl -sf -u "$GITEA_USER:$GITEA_PASS" -X POST "$GITEA/api/v1/orgs/$GITEA_ORG/repos" \
-H "Content-Type: application/json" -d "{\"name\":\"$name\",\"private\":false,\"auto_init\":false}" 2>/dev/null || true
rm -rf .git && git init -q && git add -A
git commit -q -m "sync: code-only from github.com/$github_path" --allow-empty
git remote add origin "$GITEA/$GITEA_ORG/$name.git"
git push -u origin HEAD:main --force 2>/dev/null || git push -u origin HEAD:master --force 2>/dev/null
local size=$(du -sh . 2>/dev/null | cut -f1)
echo "$name$size"
cd "$WORK_DIR"
rm -rf "$clone_dir"
}
echo "# Agent 框架同步 — $(date '+%Y-%m-%d %H:%M')"
for entry in "${REPO_LIST[@]}"; do
sync_repo "${entry%%|*}" "${entry#*|}" 2>&1
done
echo "🎉 完成 — $(date '+%H:%M')"