Files
opencode/command/gitea-delete-runner.md
voson 43e138b19e feat: 新增对话总结命令与浏览器自动化技能
- 本地化命令描述(英文→中文)

- 删除未使用命令文件

- 新增 summarize-conversation 命令

- 更新 AI 模型配置为 DeepSeek

- 新增 agent-browser 技能

- 重构技能目录结构(重命名)
2026-01-15 17:30:39 +08:00

5.2 KiB
Raw Blame History

description, agent, subtask
description agent subtask
删除 Gitea Runner 配置(交互式) general true

Delete Gitea runner configuration with interactive selection. This command requires multiple user interactions.

Important: This is an interactive command. Wait for user input at each step before proceeding.

工作目录

macOS / Linux:

~/.config/gitea/

Windows:

%USERPROFILE%\.config\gitea\

所有 Runner 配置、进程管理都基于此目录。

Please perform the following steps:

Step 1: Load Configuration and Fetch Runners

  1. Load Gitea configuration:

macOS / Linux:

source ~/.config/gitea/config.env

Windows PowerShell:

Get-Content "$env:USERPROFILE\.config\gitea\config.env" | ForEach-Object {
    if ($_ -match '^([^=]+)=(.*)$') {
        [Environment]::SetEnvironmentVariable($matches[1], $matches[2], 'Process')
    }
}
  • Validate GITEA_URL and GITEA_TOKEN exist
  1. Fetch global runners from Gitea server:

    • API: GET ${GITEA_URL}/api/v1/admin/actions/runners
    • Requires admin permissions
    • If fails: show error and check token permissions
  2. Display runners list in Chinese:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gitea 全局 Runners (共 N 个)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 1. [runner-name]              [ID: XX] 🟢 在线/🔴 离线
 2. [runner-name]              [ID: XX] 🟢 在线/🔴 离线
...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
选择要删除的 Runner
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  输入序号: 删除单个 runner
  输入 'all': 删除所有 runners
  输入 'q' 或 'quit': 取消
  1. Wait for user selection → Do NOT proceed until user responds

Step 2: Process User Selection

Based on user input:

  • If q or quit: Cancel and exit
  • If all: Prepare to delete all runners
  • If number: Validate and prepare to delete that runner

Step 3: Display Warning and Wait for Confirmation

Display deletion warning in Chinese:

⚠️  警告: 此操作将执行以下操作:
  - 从 Gitea 服务器注销 runner
  - 停止本地运行的 runner 进程
  - 删除 runner 配置文件
  - 删除 cache 和 workspace 目录
  - 删除所有相关数据

将删除以下 runners:
  - [list of runners to be deleted]

确认删除? 输入 'yes' 继续:

Wait for user confirmation → Do NOT proceed until user types 'yes'

Step 4: Execute Deletion

If user confirmed with 'yes', for each selected runner:

4.1 Unregister from Gitea Server

DELETE ${GITEA_URL}/api/v1/admin/actions/runners/${runner_id}
  • Expected: HTTP 204
  • Show: "✓ 已从服务器注销" or "⚠️ 注销失败"

4.2 Stop Local Process

  1. Find local runner directory by matching ID in .runner file
  2. Check if process is running: pgrep -f "act_runner daemon --config ..."
  3. If running:
    • Check if runner is busy (executing jobs) via API
    • If busy, wait for user choice:
      ⚠️  警告: Runner 正在执行 job
      选项:
        1. 等待 job 完成后再停止(推荐)
        2. 强制立即停止
      
    • Wait for user input → Proceed based on choice
    • If waiting: Poll status every 10 seconds, max 5 minutes
    • Stop process: kill $pid (graceful), then kill -9 $pid if needed (force)

4.3 Delete Local Directory

macOS / Linux:

rm -rf ~/.config/gitea/runners/[runner_name]

Windows PowerShell:

Remove-Item -Path "$env:USERPROFILE\.config\gitea\runners\[runner_name]" -Recurse -Force

Step 5: Display Result

Show completion summary in Chinese:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
删除完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

成功: N 个
失败: M 个 (if any)

管理命令:
  查看剩余 runners: /gitea-list-runners
  创建新 runner:   /gitea-create-runner

Key Points

Interactive checkpoints (wait for user input):

  1. Step 1: After displaying runners list → Wait for selection
  2. Step 3: After displaying warning → Wait for confirmation ('yes')
  3. Step 4.2: If runner is busy → Wait for stop choice (1 or 2)

Safety features:

  • Double confirmation required
  • Busy status detection
  • Graceful stop before force kill
  • Three-step deletion process
  • Clear status reporting

Technical notes:

  • Requires jq for JSON parsing
  • Requires admin token for global runners
  • Uses temporary file /tmp/gitea_runners.txt for data passing
  • Cleanup temp file after completion