refactor(gitea): 移除默认 Gitea URL,要求用户明确指定

This commit is contained in:
voson
2026-01-30 10:43:19 +08:00
parent 425ca5b5fd
commit f62146b655

View File

@@ -46,7 +46,7 @@ curl -s https://git.shigongcao.com/raw/ai/opencode/main/skill/gitea/create-runne
gitea-create-runner() { gitea-create-runner() {
local mode="${1:-docker}" local mode="${1:-docker}"
local token="${2:-$GITEA_TOKEN}" local token="${2:-$GITEA_TOKEN}"
local gitea_url="${3:-https://git.shigongcao.com}" local gitea_url="${3}"
local name="${4:-runner-$(hostname -s)-$mode}" local name="${4:-runner-$(hostname -s)-$mode}"
echo "创建 $mode runner: $name" echo "创建 $mode runner: $name"
@@ -62,7 +62,7 @@ set -e
# 参数解析 # 参数解析
MODE="docker" MODE="docker"
TOKEN="" TOKEN=""
GITEA_URL="https://git.shigongcao.com" GITEA_URL=""
RUNNER_NAME="runner-$(hostname -s)-docker" RUNNER_NAME="runner-$(hostname -s)-docker"
ALL_MODE=false ALL_MODE=false
@@ -84,6 +84,11 @@ if [ -z "$TOKEN" ]; then
exit 1 exit 1
fi fi
if [ -z "$GITEA_URL" ]; then
echo "❌ 必须提供 --gitea-url 参数"
exit 1
fi
create_runner() { create_runner() {
local mode=$1 local mode=$1
local name=$2 local name=$2
@@ -317,17 +322,17 @@ Gitea Actions Runner 创建脚本
--host 创建 Host runner --host 创建 Host runner
--all 同时创建 Docker 和 Host runner --all 同时创建 Docker 和 Host runner
--token TOKEN Gitea 注册令牌 (必需) --token TOKEN Gitea 注册令牌 (必需)
--gitea-url URL Gitea 实例地址 (默认: https://git.shigongcao.com) --gitea-url URL Gitea 实例地址 (必需)
--name NAME Runner 名称 (默认: runner-\$(hostname)-模式) --name NAME Runner 名称 (默认: runner-\$(hostname)-模式)
--skip-checks 跳过依赖检查 --skip-checks 跳过依赖检查
--interactive 交互模式 (传统方式) --interactive 交互模式 (传统方式)
--help 显示此帮助信息 --help 显示此帮助信息
示例: 示例:
$0 --docker --token "wibnIxvgeyYj3D7d53VTQvNxv0UVqArBwAtPFBWD" $0 --docker --token "wibnIxvgeyYj3D7d53VTQvNxv0UVqArBwAtPFBWD" --gitea-url "https://git.shigongcao.com"
$0 --host --token "your_token" --gitea-url "https://git.example.com" $0 --host --token "your_token" --gitea-url "https://git.example.com"
$0 --all --token "your_token" $0 --all --token "your_token" --gitea-url "https://git.shigongcao.com"
$0 --all --token "your_token" --name "custom-runner" $0 --all --token "your_token" --gitea-url "https://git.shigongcao.com" --name "custom-runner"
直接使用技能: 直接使用技能:
# 从技能文档直接执行 # 从技能文档直接执行
@@ -354,10 +359,17 @@ while [[ $# -gt 0 ]]; do
done done
# 检查必需参数 # 检查必需参数
if [ -z "$GITEA_TOKEN" ] && [ "$INTERACTIVE" = false ]; then if [ "$INTERACTIVE" = false ]; then
echo "❌ 必须提供 --token 参数" if [ -z "$GITEA_TOKEN" ]; then
echo "使用 --help 查看帮助" echo "❌ 必须提供 --token 参数"
exit 1 echo "使用 --help 查看帮助"
exit 1
fi
if [ -z "$GITEA_URL" ]; then
echo "❌ 必须提供 --gitea-url 参数"
echo "使用 --help 查看帮助"
exit 1
fi
fi fi
# ========================================== # ==========================================
@@ -395,127 +407,17 @@ if [ -z "$GITEA_URL" ] || [ -z "$GITEA_TOKEN" ]; then
fi fi
fi fi
# 如果仍然缺少 URL使用默认值
if [ -z "$GITEA_URL" ]; then
GITEA_URL="https://git.shigongcao.com"
echo "⚠️ 使用默认 Gitea URL: $GITEA_URL"
fi
# 检查必需参数 # 检查必需参数
if [ -z "$GITEA_TOKEN" ]; then if [ -z "$GITEA_URL" ]; then
echo "❌ 必须提供 Gitea 注册令牌" echo "❌ 必须提供 Gitea URL"
echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]" echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]"
echo " 或创建配置文件: $HOME/.config/gitea/config.env" echo " 或创建配置文件: $HOME/.config/gitea/config.env"
exit 1 exit 1
fi fi
echo "✓ Gitea 配置:"
echo " URL: $GITEA_URL"
echo " Token: ${GITEA_TOKEN:0:8}..."
echo ""
# ==========================================
# 4. Generate Runner Name
# ==========================================
# 如果未指定名称,生成默认名称
if [ -z "$RUNNER_NAME" ]; then
hostname=$(hostname -s 2>/dev/null || echo "unknown")
if [ "$ALL_MODE" = true ]; then
# 批量模式会创建两个runner
echo "批量模式:将创建 docker 和 host runner"
else
RUNNER_NAME="runner-$hostname-$RUNNER_MODE"
echo "生成 Runner 名称: $RUNNER_NAME"
fi
else
echo "使用指定的 Runner 名称: $RUNNER_NAME"
fi
# 检查名称有效性(如果不是批量模式)
if [ "$ALL_MODE" = false ] && [[ ! "$RUNNER_NAME" =~ ^[a-zA-Z0-9_-]+$ ]]; then
echo "❌ Runner 名称无效 (仅限字母、数字、下划线、连字符)"
exit 1
fi
echo ""
read -p "请输入选项 [1/2] (默认 1): " mode_choice
if [ "$mode_choice" = "2" ]; then
RUNNER_MODE="docker"
echo "✅ 已选择: Docker Mode"
else
RUNNER_MODE="host"
echo "✅ 已选择: Host Mode"
fi
echo ""
fi
# Check dependencies based on mode
if [ "$RUNNER_MODE" = "host" ]; then
echo "检查 act_runner 安装状态..."
if command -v act_runner &> /dev/null; then
version=$(act_runner --version 2>&1 | head -n1)
echo "✓ act_runner 已安装: $version"
else
echo "⚠️ act_runner 未安装"
echo "正在使用 Homebrew 安装..."
if ! command -v brew &> /dev/null; then
echo "❌ 需要先安装 Homebrew"
exit 1
fi
brew install act_runner
if [ $? -eq 0 ]; then
echo "✓ act_runner 安装成功"
else
echo "❌ act_runner 安装失败"
exit 1
fi
fi
else
# Docker mode checks
echo "检查 Docker 环境..."
if command -v docker &> /dev/null; then
if docker info &> /dev/null; then
docker_ver=$(docker --version)
echo "✓ Docker 已安装并运行: $docker_ver"
else
echo "❌ Docker 已安装但未运行"
echo " 请启动 Docker Desktop"
exit 1
fi
else
echo "❌ Docker 未安装"
echo " Docker 模式需要预先安装 Docker"
echo " 请访问 https://www.docker.com/products/docker-desktop/ 下载安装"
exit 1
fi
fi
echo ""
# ==========================================
# 3. Load Gitea Configuration
# ==========================================
# 如果未通过命令行提供,尝试从配置文件加载
if [ -z "$GITEA_URL" ] || [ -z "$GITEA_TOKEN" ]; then
config_file="$HOME/.config/gitea/config.env"
if [ -f "$config_file" ]; then
echo "从配置文件加载 Gitea 配置..."
source "$config_file"
fi
fi
# 如果仍然缺少 URL使用默认值
if [ -z "$GITEA_URL" ]; then
GITEA_URL="https://git.shigongcao.com"
echo "⚠️ 使用默认 Gitea URL: $GITEA_URL"
fi
# 检查必需参数
if [ -z "$GITEA_TOKEN" ]; then if [ -z "$GITEA_TOKEN" ]; then
echo "❌ 必须提供 Gitea 注册令牌" echo "❌ 必须提供 Gitea 注册令牌"
echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]" echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]"
echo " 或创建配置文件: $HOME/.config/gitea/config.env" echo " 或创建配置文件: $HOME/.config/gitea/config.env"
exit 1 exit 1
fi fi