#!/bin/bash echo "=========================================" echo "Gitea SSO集成配置脚本" echo "=========================================" echo "" echo "步骤1: 创建Gitea管理员账户..." # 创建管理员账户(使用novalon-admin而不是admin) docker exec -u git forgejo gitea admin user create \ --username novalon-admin \ --password Novalon@Admin2026 \ --email admin@novalon.cn \ --admin \ --must-change-password=false echo "" echo "步骤2: 创建Woodpecker CI OAuth2应用..." # 使用Gitea API创建OAuth2应用 # 首先获取管理员token TOKEN=$(docker exec -u git forgejo gitea admin user generate-access-token \ --username novalon-admin \ --token-name woodpecker-setup \ --scopes write:application,read:application 2>&1 | grep -oP 'Access token: \K.*') echo "管理员Token: $TOKEN" # 使用API创建OAuth2应用 RESPONSE=$(curl -s -X POST "http://localhost:3001/api/v1/applications/oauth2" \ -H "Authorization: token $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Woodpecker CI", "redirect_uri": "https://ci.f.novalon.cn/authorize" }') echo "OAuth2应用创建响应: $RESPONSE" # 提取Client ID和Secret CLIENT_ID=$(echo "$RESPONSE" | grep -oP '"client_id":"\K[^"]+') CLIENT_SECRET=$(echo "$RESPONSE" | grep -oP '"client_secret":"\K[^"]+') echo "" echo "=========================================" echo "配置完成!" echo "=========================================" echo "" echo "管理员账户:" echo " 用户名: novalon-admin" echo " 密码: Novalon@Admin2026" echo " 邮箱: admin@novalon.cn" echo "" echo "OAuth2凭证:" echo " Client ID: $CLIENT_ID" echo " Client Secret: $CLIENT_SECRET" echo "" echo "请将以下内容添加到.env文件:" echo " WOODPECKER_FORGEJO_CLIENT=$CLIENT_ID" echo " WOODPECKER_FORGEJO_SECRET=$CLIENT_SECRET" echo "========================================="