feat: update manage-release
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
# manage-release
|
||||
|
||||
`manage-release` 帮助 Agent 管理从开发版本到发布的 Git 流程,包括 worktree、分支、
|
||||
版本号、PR/MR、合并和 release tag。它可以只处理其中一个阶段,也可以从准备开发目录
|
||||
一直执行到发布。
|
||||
`manage-release` 帮助 Agent 发布已经准备好的 Git commit,也能在发布前确有必要时管理
|
||||
版本文件、worktree、分支、PR/MR 和合并。普通发布优先走“更新说明 + annotated tag”的
|
||||
短路径;只有发布要求修改仓库内容时,才进入准备版本的分支流程。
|
||||
|
||||
## 使用前准备
|
||||
|
||||
- 项目已经是 Git 仓库,并配置了可访问的远端。
|
||||
- 项目已有版本文件或发布约定;没有时可以让 Agent 先给出版本建议。
|
||||
- 项目已有版本来源或 tag 发布约定;没有时可以让 Agent 先给出版本建议。
|
||||
- 创建或合并 PR/MR、创建 Forge Release 时,准备好 GitHub、GitLab、Gitea 或 Forgejo
|
||||
对应的已认证 CLI。只发布 Git tag 时不要求 Forge CLI,但 Git remote 必须可读写。
|
||||
- 请求里写清目标版本、基线分支,以及允许执行到哪一步。没有明确授权的远端写操作
|
||||
@@ -54,11 +54,21 @@ Agent 只会在仓库要求全部满足后合并,不会使用管理员权限
|
||||
### 为已合并版本发布 tag
|
||||
|
||||
```text
|
||||
使用 manage-release,为已经合并到 main 的 1.6.0 发布 v1.6.0 tag。确认 tag 指向包含该版本号的 merged commit,不要创建 Forge Release。
|
||||
使用 manage-release,为已经合并到 main 的 1.6.0 发布 v1.6.0 tag。根据 v1.5.0 到目标 commit 的实际变化生成更新说明,把说明写入 annotated tag,并验证远端 tag 的 commit 和说明。不要创建 Forge Release。
|
||||
```
|
||||
|
||||
适合依靠 Git tag 触发后续 CI 发布的项目。Agent 会分别验证版本文件、目标 commit 和
|
||||
远端 tag,不会给未合并分支打正式 tag。
|
||||
这是无需修改仓库文件时的默认短路径,适合依靠 Git tag 触发后续 CI 发布的项目。Agent
|
||||
会分别验证目标 commit、更新说明和远端 tag,不会创建 worktree、发布分支或 PR,也不会
|
||||
给未合并分支打正式 tag。
|
||||
|
||||
### 为已合并版本创建 Gitea Release
|
||||
|
||||
```text
|
||||
使用 manage-release,发布已经合并到 main 的 1.6.0:生成更新说明,创建并验证附带说明的 v1.6.0 annotated tag,然后在 Gitea 创建使用同一份说明的 Release。
|
||||
```
|
||||
|
||||
Agent 会先证明 tag 已存在、指向计划 commit 且包含更新说明,再创建 Gitea Release。
|
||||
Release 创建失败时保留正确的 tag,从 Release 阶段恢复。
|
||||
|
||||
### 完成端到端发布
|
||||
|
||||
@@ -66,8 +76,9 @@ Agent 只会在仓库要求全部满足后合并,不会使用管理员权限
|
||||
使用 manage-release 完成 1.6.0 发布:从 main 创建 worktree 和分支,完成版本更新和验证,创建 PR,检查通过后合并,推送 v1.6.0 tag,并创建 Forge Release。
|
||||
```
|
||||
|
||||
这条请求授权完整流程。遇到 review 未通过、CI 失败、版本冲突或已有同名 tag 时,
|
||||
Agent 会停止并说明卡在哪一步,不会绕过检查继续发布。
|
||||
只有版本文件或仓库内 CHANGELOG 必须随发布修改时才使用这条长路径。tag 仍必须附带更新
|
||||
说明,Forge Release 复用同一份说明。遇到 review 未通过、CI 失败、版本冲突或已有同名
|
||||
tag 时,Agent 会停止并说明卡在哪一步,不会绕过检查继续发布。
|
||||
|
||||
### 发布紧急修复版本
|
||||
|
||||
@@ -89,18 +100,19 @@ Skill 会从 Git 和代码托管平台重新判断状态,再继续缺失的步
|
||||
|
||||
## Agent 会做什么
|
||||
|
||||
Agent 会先发现项目自己的版本、分支和发布规则,再检查本地 Git 与远端状态。它只执行
|
||||
请求中明确授权的阶段,并在合并、tag 或 release 条件不满足时停止。完整流程结束后,
|
||||
结果中会分别列出 worktree、分支、版本、PR/MR、merged commit、tag 和 Forge Release
|
||||
状态。
|
||||
Agent 会先发现项目自己的版本和发布规则、锁定远端目标 commit,再判断发布是否要求修改
|
||||
仓库内容。不需要修改时直接生成更新说明并发布 annotated tag;需要修改时才准备分支,
|
||||
并只在隔离用户工作确有必要时创建 worktree。它只执行请求中明确授权的阶段,并在合并、
|
||||
tag 或 release 条件不满足时停止。
|
||||
|
||||
## 如何判断完成
|
||||
|
||||
- 只分析版本时,结果包含建议版本及依据。
|
||||
- 创建开发环境时,结果包含 worktree 路径、分支和基线 commit。
|
||||
- 创建或合并 PR/MR 时,结果包含 URL、检查状态和 merged commit。
|
||||
- 发布 tag 时,远端 tag 解引用后的 commit 与 merged commit 一致。
|
||||
- 创建 Forge Release 时,结果包含可访问的 release URL。
|
||||
- 发布 tag 时,远端 tag 解引用后的 commit 与目标 commit 一致,而且 tag object 包含经过
|
||||
核对的更新说明。
|
||||
- 创建 Forge Release 时,结果包含可访问的 release URL,正文与 tag 更新说明一致。
|
||||
- 中途停止时,结果说明停在哪一步、为什么停止,以及下次如何继续。
|
||||
|
||||
## 不适用的场景
|
||||
|
||||
Reference in New Issue
Block a user