ebaa7f3c50
ci/woodpecker/manual/woodpecker Pipeline was successful
- 移除未使用的YAML锚点定义 - 替换commands字段中的锚点引用为实际值 - 移除有问题的通知步骤 - 修复测试文件中的问题 - 添加新的测试用例和配置文件
84 lines
2.7 KiB
Bash
84 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
echo "========================================="
|
|
echo "Gitea OAuth2应用自动配置"
|
|
echo "========================================="
|
|
|
|
echo ""
|
|
echo "步骤1: 生成管理员Access Token..."
|
|
# 使用正确的scope (all包含所有权限)
|
|
OUTPUT=$(docker exec -u git forgejo gitea admin user generate-access-token \
|
|
--username novalon-admin \
|
|
--token-name oauth2-setup-$(date +%s) \
|
|
--scopes all 2>&1)
|
|
|
|
echo "$OUTPUT"
|
|
|
|
# 从输出中提取token
|
|
TOKEN=$(echo "$OUTPUT" | grep -oP 'Access token: \K.*' || echo "")
|
|
|
|
echo ""
|
|
echo "步骤2: 使用Token创建OAuth2应用..."
|
|
|
|
if [ -n "$TOKEN" ]; then
|
|
echo "Token已生成: ${TOKEN:0:20}..."
|
|
|
|
# 使用API创建OAuth2应用
|
|
RESPONSE=$(docker exec forgejo curl -s -X POST "http://localhost:3000/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",
|
|
"confidential_client": true
|
|
}')
|
|
|
|
echo "API响应: $RESPONSE"
|
|
|
|
# 提取Client ID和Secret
|
|
CLIENT_ID=$(echo "$RESPONSE" | grep -oP '"client_id":"\K[^"]+' || echo "")
|
|
CLIENT_SECRET=$(echo "$RESPONSE" | grep -oP '"client_secret":"\K[^"]+' || echo "")
|
|
|
|
if [ -n "$CLIENT_ID" ] && [ -n "$CLIENT_SECRET" ]; then
|
|
echo ""
|
|
echo "========================================="
|
|
echo "✅ OAuth2应用创建成功!"
|
|
echo "========================================="
|
|
echo ""
|
|
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 ""
|
|
echo "然后重启Woodpecker服务:"
|
|
echo "cd /home/novalon/docker-app/novalon-cicd"
|
|
echo "docker-compose restart woodpecker-server"
|
|
echo "========================================="
|
|
exit 0
|
|
else
|
|
echo "警告: 无法从API响应中提取凭证"
|
|
fi
|
|
else
|
|
echo "警告: 无法生成Token"
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo "⚠️ 自动配置失败,请手动完成"
|
|
echo "========================================="
|
|
echo ""
|
|
echo "1. 访问 https://git.f.novalon.cn"
|
|
echo "2. 登录凭证:"
|
|
echo " 用户名: novalon-admin"
|
|
echo " 密码: Novalon@Admin2026"
|
|
echo ""
|
|
echo "3. 创建OAuth2应用:"
|
|
echo " 头像 -> 设置 -> 应用 -> OAuth2应用 -> 创建应用"
|
|
echo " 名称: Woodpecker CI"
|
|
echo " 重定向URI: https://ci.f.novalon.cn/authorize"
|
|
echo ""
|
|
echo "4. 记录Client ID和Secret并更新.env文件"
|
|
echo "========================================="
|