Files
tianpu-ems/scripts/gitea-migration/05_create_repos.sh
Du Wenbo 02c4698b59 feat: multi-customer architecture + Z-Park support + Gitea migration scripts
Multi-customer config system:
- CUSTOMER env var selects customer (tianpu/zpark)
- customers/tianpu/config.yaml — Tianpu branding, collectors, features
- customers/zpark/config.yaml — Z-Park branding, Sungrow collector
- GET /api/v1/branding endpoint for customer-specific branding
- main.py loads customer config for app title, CORS, logging
- Collector manager filters by customer's enabled collectors

Z-Park (中关村医疗器械园) support:
- Sungrow iSolarCloud API collector (sungrow_collector.py)
- Z-Park device definitions (10 inverters, 8 combiner boxes, 22+ buildings)
- Z-Park TOU pricing config (Beijing 2026 rates)
- Z-Park seed script (seed_zpark.py)

Gitea migration scripts (Mac Studio → labmac3):
- 5 migration scripts + README in scripts/gitea-migration/
- Creates 3-repo structure: ems-core, tp-ems, zpark-ems

Version: v1.0.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 16:23:33 +08:00

77 lines
2.7 KiB
Bash

#!/bin/bash
# Run this AFTER Gitea is running on labmac3
# Creates the 3-repo structure: ems-core, tp-ems, zpark-ems
# Usage: bash 05_create_repos.sh
GITEA_URL="http://192.168.1.77:3300"
ADMIN_USER="tianpu"
ADMIN_PASS="TianpuGit2026!"
echo "=== Creating 3-repo structure on Gitea ==="
# Get admin token
TOKEN=$(curl -s -X POST "$GITEA_URL/api/v1/users/$ADMIN_USER/tokens" \
-u "$ADMIN_USER:$ADMIN_PASS" \
-H "Content-Type: application/json" \
-d "{\"name\":\"setup-$(date +%s)\",\"scopes\":[\"all\"]}" | python -c "import sys,json; print(json.load(sys.stdin).get('sha1',''))")
echo "Token: ${TOKEN:0:8}..."
# Create ems-core repo
echo ""
echo "Creating ems-core repo..."
curl -s -X POST "$GITEA_URL/api/v1/orgs/tianpu/repos" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "ems-core",
"description": "EMS标准产品核心代码 - 共享后端/前端/数据模型",
"private": false,
"default_branch": "main"
}' | python -c "import sys,json; d=json.load(sys.stdin); print(f' Created: {d.get(\"full_name\",\"ERROR\")}') if 'id' in d else print(f' {d.get(\"message\",d)}')"
# Create tp-ems repo
echo ""
echo "Creating tp-ems repo..."
curl -s -X POST "$GITEA_URL/api/v1/orgs/tianpu/repos" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "tp-ems",
"description": "天普大兴园区EMS - 客户定制项目",
"private": false,
"default_branch": "main"
}' | python -c "import sys,json; d=json.load(sys.stdin); print(f' Created: {d.get(\"full_name\",\"ERROR\")}') if 'id' in d else print(f' {d.get(\"message\",d)}')"
# Create zpark-ems repo
echo ""
echo "Creating zpark-ems repo..."
curl -s -X POST "$GITEA_URL/api/v1/orgs/tianpu/repos" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "zpark-ems",
"description": "中关村医疗器械园EMS - 客户定制项目",
"private": false,
"default_branch": "main"
}' | python -c "import sys,json; d=json.load(sys.stdin); print(f' Created: {d.get(\"full_name\",\"ERROR\")}') if 'id' in d else print(f' {d.get(\"message\",d)}')"
# Add all developers as collaborators to all repos
echo ""
echo "Adding collaborators..."
for REPO in ems-core tp-ems zpark-ems; do
for USER in duwenbo hanbing zhangshiyue wangliwei yangruixiao; do
curl -s -o /dev/null -X PUT "$GITEA_URL/api/v1/repos/tianpu/$REPO/collaborators/$USER" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d '{"permission": "write"}'
done
echo " $REPO: all 5 developers added"
done
echo ""
echo "=== All 3 repos created ==="
echo " $GITEA_URL/tianpu/ems-core"
echo " $GITEA_URL/tianpu/tp-ems"
echo " $GITEA_URL/tianpu/zpark-ems"