Gitea Issue DevOps Agent

一个把 Issue → Branch → Preview Env → 测试闭环 固化到技能与脚本中的交付方案。 核心目标是提升交付速度,同时避免“每个分支都全量起服务”的资源浪费。

自动 / 半自动 / 全人工 Issue 图片证据抓取 变更范围智能部署 槽位池自动回收

核心价值

1. 分支隔离提测

每个 issue 绑定分支与预览槽位,主干环境保持稳定,避免相互覆盖。

2. 资源按需分配

根据变更范围判断 client_only/server_only/full_stack,不变更服务端就不重启服务端。

3. 可审计闭环

每次提测都可回溯到 commit、测试结果、环境 URL、验证步骤,且合并始终由工程师人工确认。

安装指南

1) 获取技能仓库

git clone https://fun-md.com/Fun_MD/devops-skills.git
cd devops-skills

2) 安装到 Codex skills

# Linux / macOS
mkdir -p ~/.codex/skills
cp -r skills/gitea-issue-devops-agent ~/.codex/skills/

# Windows PowerShell
New-Item -ItemType Directory -Force $HOME\.codex\skills | Out-Null
Copy-Item .\skills\gitea-issue-devops-agent $HOME\.codex\skills\gitea-issue-devops-agent -Recurse -Force

3) 首次引导参数

工具使用说明

issue_audit.py(拉取 issue + 图片证据)

python skills/gitea-issue-devops-agent/scripts/issue_audit.py \
  --base-url https://fun-md.com \
  --repo FunMD/document-collab \
  --token <GITEA_TOKEN> \
  --state all \
  --download-attachments \
  --output-dir .tmp/issue-audit

change_scope.py(按改动范围决策部署)

python skills/gitea-issue-devops-agent/scripts/change_scope.py \
  --repo-path . \
  --base-ref origin/main \
  --head-ref HEAD

preview_slot_allocator.py(分配 / 复用 / 释放槽位)

python skills/gitea-issue-devops-agent/scripts/preview_slot_allocator.py \
  --state-file .tmp/preview-slots.json \
  --slots preview-a,preview-b \
  --repo FunMD/document-collab \
  --issue 48 \
  --branch dev \
  --ttl-hours 24 \
  --url-template https://{slot}.qa.example.com \
  --evict-oldest

.gitea/workflows 接入

本仓库已包含示例工作流:.gitea/workflows/issue-branch-preview.yml.gitea/workflows/preview-slot-reclaim.yml,用于完成以下自动化链路:

建议先在测试仓库验证工作流变量后再推广到生产仓库。

Skill Path

skills/gitea-issue-devops-agent/SKILL.md