From f62146b655ce242e2527d7567f993ed5f32b4620 Mon Sep 17 00:00:00 2001 From: voson Date: Fri, 30 Jan 2026 10:43:19 +0800 Subject: [PATCH] =?UTF-8?q?refactor(gitea):=20=E7=A7=BB=E9=99=A4=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=20Gitea=20URL=EF=BC=8C=E8=A6=81=E6=B1=82=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=8E=E7=A1=AE=E6=8C=87=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skill/gitea/create-runner.md | 150 ++++++----------------------------- 1 file changed, 26 insertions(+), 124 deletions(-) diff --git a/skill/gitea/create-runner.md b/skill/gitea/create-runner.md index 26eea66..db81901 100644 --- a/skill/gitea/create-runner.md +++ b/skill/gitea/create-runner.md @@ -46,7 +46,7 @@ curl -s https://git.shigongcao.com/raw/ai/opencode/main/skill/gitea/create-runne gitea-create-runner() { local mode="${1:-docker}" local token="${2:-$GITEA_TOKEN}" - local gitea_url="${3:-https://git.shigongcao.com}" + local gitea_url="${3}" local name="${4:-runner-$(hostname -s)-$mode}" echo "创建 $mode runner: $name" @@ -62,7 +62,7 @@ set -e # 参数解析 MODE="docker" TOKEN="" -GITEA_URL="https://git.shigongcao.com" +GITEA_URL="" RUNNER_NAME="runner-$(hostname -s)-docker" ALL_MODE=false @@ -84,6 +84,11 @@ if [ -z "$TOKEN" ]; then exit 1 fi +if [ -z "$GITEA_URL" ]; then + echo "❌ 必须提供 --gitea-url 参数" + exit 1 +fi + create_runner() { local mode=$1 local name=$2 @@ -317,17 +322,17 @@ Gitea Actions Runner 创建脚本 --host 创建 Host runner --all 同时创建 Docker 和 Host runner --token TOKEN Gitea 注册令牌 (必需) - --gitea-url URL Gitea 实例地址 (默认: https://git.shigongcao.com) + --gitea-url URL Gitea 实例地址 (必需) --name NAME Runner 名称 (默认: runner-\$(hostname)-模式) --skip-checks 跳过依赖检查 --interactive 交互模式 (传统方式) --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 --all --token "your_token" - $0 --all --token "your_token" --name "custom-runner" + $0 --all --token "your_token" --gitea-url "https://git.shigongcao.com" + $0 --all --token "your_token" --gitea-url "https://git.shigongcao.com" --name "custom-runner" 直接使用技能: # 从技能文档直接执行 @@ -354,10 +359,17 @@ while [[ $# -gt 0 ]]; do done # 检查必需参数 -if [ -z "$GITEA_TOKEN" ] && [ "$INTERACTIVE" = false ]; then - echo "❌ 必须提供 --token 参数" - echo "使用 --help 查看帮助" - exit 1 +if [ "$INTERACTIVE" = false ]; then + if [ -z "$GITEA_TOKEN" ]; then + echo "❌ 必须提供 --token 参数" + echo "使用 --help 查看帮助" + exit 1 + fi + if [ -z "$GITEA_URL" ]; then + echo "❌ 必须提供 --gitea-url 参数" + echo "使用 --help 查看帮助" + exit 1 + fi fi # ========================================== @@ -395,127 +407,17 @@ if [ -z "$GITEA_URL" ] || [ -z "$GITEA_TOKEN" ]; then 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 - echo "❌ 必须提供 Gitea 注册令牌" - echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]" +if [ -z "$GITEA_URL" ]; then + echo "❌ 必须提供 Gitea URL" + echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]" echo " 或创建配置文件: $HOME/.config/gitea/config.env" exit 1 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 echo "❌ 必须提供 Gitea 注册令牌" - echo " 使用方法: $0 --token YOUR_TOKEN [其他选项]" + echo " 使用方法: $0 --token YOUR_TOKEN --gitea-url YOUR_GITEA_URL [其他选项]" echo " 或创建配置文件: $HOME/.config/gitea/config.env" exit 1 fi