禅道API

zentao-api

by catouse

调用禅道(ZenTao)RESTful API v2.0 完成用户请求,包括查询项目、执行、需求、Bug、任务、测试用例等数据,以及创建、编辑、删除等写操作。当用户提到禅道、zentao、查询项目进展、获取Bug列表、更新需求状态、创建任务等项目管理相关操作时使用本技能。

4.5k平台与服务未扫描2026年3月23日

安装

claude skill add --url github.com/openclaw/skills/tree/main/skills/catouse/zentao-api

文档

禅道 API v2.0

配置

优先级从高到低:

变量说明
ZENTAO_URL服务器地址,如 http://zentao.example.com
ZENTAO_TOKEN直接指定 token,跳过登录和缓存(最高优先级),仍然需要提供禅道服务器地址
ZENTAO_ACCOUNT登录账号,当有 ZENTAO_TOKEN 时,账号是可选的,但如果提供账号可以更好的回答与当前用户相关的问题。
ZENTAO_PASSWORD登录密码,当有 ZENTAO_TOKEN 时,无需提供密码

ZENTAO_URLZENTAO_TOKENZENTAO_ACCOUNT 会在首次登录后写入 ~/.zentao-token.json,后续调用无需重复设置

若必要变量缺失,提示用户并给出 export 命令。如果用户直接提供了服务器、账号和密码,则直接使用,但同时告知用户尽量设置为环境变量。

认证流程

所有业务 API 均需在 Header 携带 token。通过运行脚本 scripts/get-token.sh 自动获取禅道 URL、token 和用户名,避免每次重复登录。

脚本依赖:curlnode(Node.js)

脚本行为:

  • 若缓存文件存在,自动补全缺失的 ZENTAO_URLZENTAO_TOKENZENTAO_ACCOUNT
  • 缓存中 URL 与账号均匹配时直接复用 token(token 永久有效,无需密码)
  • URL 或账号变更、缓存不存在时,调用登录 API 获取新 token,并将 tokenurlaccount 写入缓存

脚本输出三行 KEY=VALUE,使用 eval 一次性设置所有变量:

bash
eval "$(bash scripts/get-token.sh)"
# 执行后可直接使用 $ZENTAO_URL、$ZENTAO_TOKEN、$ZENTAO_ACCOUNT

后续所有请求的 Header 中携带:

code
token: $ZENTAO_TOKEN

执行 API 调用的步骤

  1. 运行 eval "$(bash scripts/get-token.sh)" 获取 ZENTAO_URLZENTAO_TOKENZENTAO_ACCOUNT(自动处理缓存,无需每次登录;仍缺失时提示用户)
  2. 根据用户意图选择正确的 API 端点(参见 api-reference.md
  3. 若为 PUT 操作且用户未提供全部字段,先调用对应 GET 详情接口取回当前数据,再将用户指定的字段覆盖进去
  4. 构造请求(方法、URL、Header、Body)并向用户确认写操作内容
  5. 执行请求,解析响应
  6. 以清晰易读的格式向用户展示结果

常用操作示例

获取所有正在进行的执行(迭代/Sprint)

执行(execution)属于某个项目,需先确定项目 ID,或遍历所有项目:

bash
# 先获取进行中的项目
curl -s "$ZENTAO_URL/api.php/v2/projects?browseType=doing" -H "token: $ZENTAO_TOKEN"

# 再获取该项目的执行列表(将 {projectID} 替换为实际ID)
curl -s "$ZENTAO_URL/api.php/v2/projects/{projectID}/executions" -H "token: $ZENTAO_TOKEN"

获取产品的 Bug 列表

bash
curl -s "$ZENTAO_URL/api.php/v2/products/{productID}/bugs" -H "token: $ZENTAO_TOKEN"

修改 Bug

bash
curl -s -X PUT "$ZENTAO_URL/api.php/v2/bugs/{bugID}" \
  -H "token: $ZENTAO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "新标题", "severity": 2, "pri": 2}'

解决 Bug

bash
curl -s -X PUT "$ZENTAO_URL/api.php/v2/bugs/{bugID}/resolve" \
  -H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" -d '{}'

创建需求

bash
curl -s -X POST "$ZENTAO_URL/api.php/v2/stories" \
  -H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
  -d '{"productID": 1, "title": "需求标题", "assignedTo": "admin"}'

完成任务

bash
curl -s -X PUT "$ZENTAO_URL/api.php/v2/tasks/{taskID}/finish" \
  -H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
  -d '{"consumed": 2, "assignedTo": "admin", "finishedDate": "2026-03-18"}'

意图识别规则

用户意图关键词对应操作
正在进行的执行/迭代/SprintGET projects?browseType=doing + GET projects/{id}/executions
获取所有产品/项目GET /products 或 GET /projects
某产品/项目的 BugGET /products/{id}/bugs 或 /projects/{id}/bugs
更新/修改 BugPUT /bugs/{id}
解决 BugPUT /bugs/{id}/resolve
关闭需求PUT /stories/{id}/close
创建任务POST /tasks
完成任务PUT /tasks/{id}/finish
获取用户列表GET /users

注意事项

  • URL 中的数字 ID(如 /bugs/1)需替换为实际 ID
  • 若不知道 ID,先调用列表接口获取,再操作具体条目
  • PUT 接口需提供所有相关字段:禅道的 PUT API 通常要求请求体包含该资源的所有必填字段,而不仅仅是要修改的字段。若用户只指定了部分字段,必须先调用对应的 GET 详情接口获取当前完整数据,再将用户修改的字段覆盖进去,最后一并提交
  • 为避免误操作,写操作前向用户确认操作内容,如果用户明确要求不用确认则直接执行
  • 响应为 401 表示 token 已被手动吊销,执行 rm ~/.zentao-token.json 清除缓存后重新运行
  • browseType 常用值:all(全部)、doing(进行中)、closed(已关闭)

完整 API 参考

详细的端点列表和请求参数见 api-reference.md

备用资源

相关 Skills

Slack动图

by anthropics

Universal
热门

面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。

帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。

平台与服务
未扫描139.0k

MCP构建

by anthropics

Universal
热门

聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。

想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。

平台与服务
未扫描139.0k

接口测试套件

by alirezarezvani

Universal
热门

扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。

帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。

平台与服务
未扫描15.8k

相关 MCP 服务

Slack 消息

编辑精选

by Anthropic

热门

Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。

这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。

平台与服务
86.1k

by netdata

热门

io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。

这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。

平台与服务
78.9k

by d4vinci

热门

Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。

这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。

平台与服务
52.8k

评论