新增禅道项目管理系统插件,含项目集/产品/项目/执行、需求 (story/epic/requirement)、Bug、任务、测试、计划与发布、反馈工单 八个工作流技能,自动配置 MCP 连接(禅道「个人中心 → 获取凭证」 自助生成 14 天 Token)。 MCP Server 是团队自建的 zentao-mcp 网桥(部署在 pm.ops.yixiong-tech.com/mcp),基于开源 openapi-mcp-server 二次开发。 Claude 侧走 userConfig 钥匙链 + 自定义 token 头;Codex 侧受限于官方 插件格式只支持 bearer_token_env_var,走 Authorization: Bearer——网桥 那边已经加了 preferred_header/bearer_mode 配置项统一归一化处理,两条 路径都验证过连通。 三轮审查(静态字段对照 openapi.json、跨文件一致性、真实端点实测) 修正过程中发现的问题,技能文档里引用的工具名全部跟服务器真实注册 的 118 个工具核对过。 同步更新:.claude-plugin/marketplace.json、.agents/plugins/marketplace.json、 README.md、CLAUDE.md 的插件索引与说明;README 补充「获取凭证」操作 截图(已脱敏)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016pFx6jnym6kRWRQ5JyDUNv
85 lines
3.5 KiB
Markdown
85 lines
3.5 KiB
Markdown
---
|
||
name: zentao-plan
|
||
description: "禅道产品计划、版本(build)、发布(release)管理。当用户说「排个产品计划」「打个包」「建个版本」「发布上线」时使用。"
|
||
---
|
||
|
||
# 禅道产品计划 / 版本 / 发布
|
||
|
||
**前置:先读 `zentao-shared`(尤其"路径参数不出现在 inputSchema 里"一节)。**
|
||
|
||
---
|
||
|
||
## 三者关系
|
||
|
||
```
|
||
productplan 产品计划(做什么、什么时候做)
|
||
build 版本/构建(某次打包产出,挂在执行下)
|
||
release 发布(把某个/某几个 build 正式对外发布)
|
||
```
|
||
|
||
三者是独立管理的实体,不是严格的父子层级——`release` 通过 `build` 字段关联具体的构建,
|
||
`build` 通过 `executionID` 关联执行、`system` 关联应用,`productplan` 只挂产品,不关联
|
||
执行/构建。
|
||
|
||
---
|
||
|
||
## 产品计划(productplan)
|
||
|
||
```
|
||
get_products_productID_productplans(productID, ...)
|
||
get_productplans_planID(planID) 详情——注意参数叫 planID,不是 productplanID
|
||
|
||
post_productplans({ payload: { productID, title, parent?, begin?, end?, branchID?, desc? } })
|
||
put_productplans_productplanID({ productplanID, payload: {...} }) # 改用的是 productplanID
|
||
delete_productplans_productplanID({ productplanID })
|
||
```
|
||
|
||
**详情接口和改/删接口的路径参数名不一样**(`planID` vs `productplanID`),照抄各自工具
|
||
名对应的字面参数名。`productID`/`title` 必填,`parent` 可以挂一个父计划形成层级。
|
||
|
||
---
|
||
|
||
## 版本 / 构建(build)
|
||
|
||
```
|
||
get_projects_projectID_builds(projectID, ...)
|
||
get_executions_executionID_builds(executionID, ...)
|
||
|
||
post_builds({ payload: { executionID, product, name, system, builder, date,
|
||
scmPath?, filePath?, desc? } })
|
||
put_builds_buildID({ buildID, payload: {...} })
|
||
delete_builds_buildID({ buildID })
|
||
```
|
||
|
||
必填字段比较多:`executionID`(注意是 `executionID` 不是 `execution`)、`product`
|
||
(注意是 `product` 不是 `productID`)、`name`、`system`(所属应用,需要先有
|
||
`zentao-misc` 里的应用 ID)、`builder`(构建者)、`date`(打包日期)——**字段名在不同
|
||
实体间不统一是这套 API 的通病**(`zentao-task` 也提过 name/title、executionID/execution
|
||
的不一致),创建前对照该工具自己的 inputSchema 逐个字段确认,不要照抄其他实体的字段名。
|
||
|
||
没有单条版本详情接口,从列表里过滤。
|
||
|
||
---
|
||
|
||
## 发布(release)
|
||
|
||
```
|
||
get_products_productID_releases(productID, ...)
|
||
|
||
post_releases({ payload: { productID, system, name, build, date, status?, desc? } })
|
||
put_releases_releasID({ releasID, payload: {...} }) # 注意参数叫 releasID,不是 releaseID
|
||
delete_releases_releasID({ releasID })
|
||
```
|
||
|
||
必填:`productID`/`system`(所属应用)/`name`(应用版本号)/`build`(包含的构建,**是字符
|
||
串数组**,可以关联多个构建,不是单个 ID)/`date`(计划发布日期)。
|
||
|
||
`status` 受限枚举:`wait` 未开始 | `normal` 已发布 | `fail` 发布失败 | `terminate` 停止维护
|
||
——不像 bug/task 有专门的状态流转端点,发布状态直接在创建/修改时传 `status` 字段设置,
|
||
改状态就是 `put_releases_releasID({ releasID, payload: { status: "normal" } })`。
|
||
|
||
**没有单条发布详情接口**,从 `get_products_productID_releases` 列表里过滤。
|
||
|
||
**参数名注意**:路径参数字面拼写是 `releasID`(缺一个 `e`),跟 testcase 的 `testcasID`
|
||
是同一类官方 API 拼写坑,照抄不要纠正。
|