禅道代码定位插件 (Zentao-to-Code)
📍 管理禅道项目到 Git 仓库和本地代码目录的映射
概述
Zentao-to-Code 是一个 OpenClaw 插件,用于在禅道项目管理系统和本地代码仓库之间建立映射关系。通过这个插件,你可以:
- 📋 管理禅道项目的本地代码仓库映射
- 🔍 根据 Bug ID 快速定位相关代码仓库
- 🔄 自动同步禅道项目列表
- 📁 支持多种代码仓库类型(前端、后端、小程序、H5 等)
- 💾 使用 SQLite 本地存储,离线可用
安装
该插件包含在 OpenClaw 扩展目录中,无需额外安装。
配置
基础配置
在 OpenClaw 配置文件中添加如下配置:
{
"plugins": {
"entries": {
"zentao-to-code": {
"config": {
"dbPath": "~/.openclaw/data/zentao-manager.db",
"zentaoUrl": "",
"zentaoUser": "your-username",
"zentaoPassword": "your-password"
}
}
}
}
}
配置参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dbPath | string | ~/.openclaw/data/zentao-manager.db | SQLite 数据库存储路径 |
zentaoUrl | string | `` | 禅道系统 API 地址 |
zentaoUser | string | `` | 禅道登录用户名 |
zentaoPassword | string | - | 禅道登录密码 |
功能
提供的工具
1. 列出所有项目
工具名称: zentao_list_projects
列出所有已配置的禅道项目。
参数:
search(可选): 搜索项目的关键词
示例:
zentao_list_projects search="mobile"
2. 获取项目的仓库映射
工具名称: zentao_get_repos
获取指定禅道项目关联的所有代码仓库。
参数:
projectId(必需): 禅道项目 ID
示例:
zentao_get_repos projectId="1"
3. 添加禅道项目
工具名称: zentao_add_project
添加一个新的禅道项目到本地数据库。
参数:
projectId(必需): 禅道项目 IDname(必需): 项目名称description(可选): 项目描述
示例:
zentao_add_project projectId="1" name="电商平台" description="新一代电商系统"
4. 添加仓库映射
工具名称: zentao_add_repo
为禅道项目添加代码仓库映射。
参数:
projectId(必需): 禅道项目 IDrepoType(必需): 仓库类型 -frontend,backend,miniprogram,h5,othername(必需): 仓库名称localPath(必需): 本地代码路径(绝对路径)gitRepo(可选): GitLab/GitHub 仓库地址defaultBranch(可选): 默认分支,默认为mainnotes(可选): 备注
示例:
zentao_add_repo \
projectId="1" \
repoType="backend" \
name="电商后端" \
localPath="/Users/dev/ecommerce-backend" \
gitRepo="git@github.com:company/ecommerce-backend.git" \
defaultBranch="main"
5. 更新仓库映射
工具名称: zentao_update_repo
更新已有的代码仓库映射信息。
参数:
repoId(必需): 仓库 IDlocalPath(可选): 本地代码路径gitRepo(可选): GitLab/GitHub 仓库地址defaultBranch(可选): 默认分支notes(可选): 备注
示例:
zentao_update_repo repoId="repo-123" localPath="/Users/dev/new-path" defaultBranch="develop"
6. 删除仓库映射
工具名称: zentao_delete_repo
删除已有的代码仓库映射。
参数:
repoId(必需): 仓库 ID
示例:
zentao_delete_repo repoId="repo-123"
7. 同步禅道项目列表
工具名称: zentao_sync_projects
从禅道 API 同步所有项目列表到本地数据库。
参数: 无
示例:
zentao_sync_projects
8. 根据 Bug ID 定位仓库
工具名称: zentao_locate_repo_by_bug
根据禅道 Bug ID 自动定位相关的代码仓库。
参数:
bugId(必需): 禅道 Bug IDrepoType(可选): 仓库类型筛选 -frontend,backend,miniprogram,h5,other
示例:
zentao_locate_repo_by_bug bugId="BUG-2024-001" repoType="backend"
使用场景
场景 1: 快速定位 Bug 所在仓库
当你收到一个 Bug 编号(如 BUG-2024-001)时,可以直接使用 zentao_locate_repo_by_bug 工具自动定位相关的代码仓库和文件位置。
zentao_locate_repo_by_bug bugId="BUG-2024-001"
场景 2: 管理多项目映射
在一个大型项目中,前端、后端、小程序分别对应不同的代码仓库。使用本插件可以统一管理这些映射关系。
zentao_add_repo projectId="1" repoType="frontend" name="PC前端" localPath="/path/to/pc-frontend"
zentao_add_repo projectId="1" repoType="backend" name="后端服务" localPath="/path/to/backend"
zentao_add_repo projectId="1" repoType="miniprogram" name="小程序" localPath="/path/to/miniapp"
场景 3: 定期同步禅道项目
定期执行 zentao_sync_projects 来保持本地数据库的项目列表与禅道系统同步。
数据存储
数据库架构
插件使用 SQLite 数据库存储以下信息:
- 项目表: 禅道项目 ID、名称、描述
- 仓库映射表: 项目 ID、仓库类型、仓库名称、本地路径、Git 地址、默认分支、备注
默认路径
~/.openclaw/data/zentao-manager.db
技术栈
- TypeScript: 类型安全的编程语言
- SQLite: 轻量级数据库
- Typebox: Schema 定义和验证
- Fetch API: HTTP 请求调用
开发
构建项目
npm run build
运行测试
npm test
文件结构
zentao-to-code/
├── index.ts # 插件主文件,注册所有工具
├── db/
│ └── store.ts # 数据库存储层实现
├── package.json # 项目依赖配置
├── openclaw.plugin.json # 插件配置和 Schema 定义
└── README.md # 本文件
常见问题
Q: 如何更改数据库存储位置?
A: 在 OpenClaw 配置文件中修改 dbPath 参数:
{
"plugins": {
"entries": {
"zentao-to-code": {
"config": {
"dbPath": "/custom/path/zentao.db"
}
}
}
}
}
Q: 支持哪些仓库类型?
A: 当前支持以下仓库类型:
frontend- 前端项目backend- 后端项目miniprogram- 小程序h5- H5 项目other- 其他类型
Q: 如何同步最新的禅道项目列表?
A: 使用 zentao_sync_projects 工具从禅道 API 同步:
zentao_sync_projects
Q: 是否需要联网才能使用?
A: 初次同步和获取 Bug 信息需要联网连接到禅道系统。添加、查询本地映射后的数据可以离线使用。
许可
此插件是 OpenClaw 平台的扩展组件。
支持
如有问题或建议,请联系开发团队。