4.4 KiB
4.4 KiB
| name | description |
|---|---|
| gitea | 统一 Gitea 总入口,支持 issue 查询、issue 拆单创建、git push 和 PR 基础操作,优先从当前仓库 origin 自动识别目标仓库。 |
Gitea - 统一入口
定位:这是 Gitea 总入口。适合“看 issue”“拆 issue”“把提交 push 上去”“给当前分支开 PR”“在 PR 里留言”这类场景。
issue和issue-drive继续保留:issue负责只读查看,issue-drive负责拆单和创建工单;gitea负责统一路由和 push / PR 能力。
当用户调用 /gitea、$gitea,或自然语言要求“处理 Gitea / push / PR / issue”时,按以下规则执行。
1. 先路由意图
先从用户输入里判断目标动作:
- 包含“看 / 查 / list / open / closed / #123 / issue”,且没有“拆 / 建 / 提 / 创建工单”语义:走
issue - 包含“拆 issue / 提 issue / 创建工单 / 沉淀问题”语义:走
issue-drive - 包含“push / 推送 / tag 推上去 / 推当前分支”语义:走 push 流程
- 包含“PR / pull request / 拉请求 / 合并请求 / 评论 PR”语义:走 PR 流程
如果一句话里同时包含多个动作,先按用户描述顺序执行;默认不要自作主张串更多步骤。
2. 环境变量
统一使用:
GITEA_TOKEN:必需GITEA_BASE_URL:可选;当传owner/repo或当前仓库origin是 SSH 地址时推荐配置
如果缺少 GITEA_TOKEN,先提示用户配置后停止,不继续执行 API、push fallback 或 PR 操作。
3. Issue 路由
如果判定为只读 issue:
- 直接执行
issueskill 的流程 - 保持它的输入规则:当前仓库自动识别、支持
owner/repo、支持完整仓库 URL、支持单条 issue 编号 - 不在
gitea里重复抄写issue的长说明
如果判定为 issue 拆单 / 创建:
- 直接执行
issue-drive的流程 - 先整理事实和证据,再创建 issue
- 创建时统一使用
GITEA_TOKEN
4. Push 流程
Push 一律先跑预检,再决定是否执行:
# Codex
python3 .codex/skills/gitea/scripts/push_gitea.py
# Claude Code
python3 .claude/skills/gitea/scripts/push_gitea.py
规则:
- 默认推当前分支到同名远端分支
ahead=0时直接告诉用户“没有可推送提交”dirty=true时明确提示“只会推送已提交内容”- 分支 diverged 时停止,不自动 rebase,也不自动 force
- 只有用户明确要求“强推 / force push”时,才带
--force
真正执行时:
# Codex
python3 .codex/skills/gitea/scripts/push_gitea.py --execute
# Claude Code
python3 .claude/skills/gitea/scripts/push_gitea.py --execute
若用户明确要求强推:
python3 .codex/skills/gitea/scripts/push_gitea.py --execute --force
执行策略:
- 先尝试
git push origin branch:branch - 若远端鉴权失败,再使用
GITEA_TOKEN调/api/v1/user获取登录名,构造一次性 HTTPS token URL 进行 fallback - 不改写本地
origin
5. PR 流程
PR 只做三件事:list、create、comment。
5.1 看 PR
# Codex
python3 .codex/skills/gitea/scripts/pr_gitea.py list --state=open --limit=20
5.2 开 PR
# Codex
python3 .codex/skills/gitea/scripts/pr_gitea.py create --base main --title "标题" --body "正文"
规则:
head默认当前分支base默认远端默认分支;识别不到时再显式传--base- 如果当前分支还没推送到远端,脚本会先走 push 流程,再创建 PR
- v1 只支持同仓库 PR,不处理 fork 间 PR
5.3 在 PR 里留言
# Codex
python3 .codex/skills/gitea/scripts/pr_gitea.py comment 12 --body "已完成回归"
规则:
- PR 评论走 issue comment API,因为 Gitea PR 底层复用 issue 线程
6. 输出要求
- issue 查询:沿用
issueskill 的固定 Markdown 输出 - issue 创建:沿用
issue-drive的创建结果输出 - push:输出预检 JSON 或执行结果 JSON,至少包含
status、branch、ahead/behind、是否执行、执行方式 - PR:输出 PR 列表或单条创建 / 评论结果 JSON,至少包含编号、标题、URL、状态
7. 用法示例
/gitea 看当前仓库 open issues
/gitea 查 issue 17
/gitea 把这个 bug 拆成两张 issue
/gitea push
/gitea 推送当前分支到远端
/gitea 给当前分支开 PR 到 main
/gitea 看当前仓库 open PR
/gitea 在 PR 12 留言:已完成回归