zentao-cli 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zentao_cli-1.0.0/.gitignore +30 -0
- zentao_cli-1.0.0/LICENSE +21 -0
- zentao_cli-1.0.0/PKG-INFO +128 -0
- zentao_cli-1.0.0/README.md +104 -0
- zentao_cli-1.0.0/SKILL.md +109 -0
- zentao_cli-1.0.0/pyproject.toml +40 -0
- zentao_cli-1.0.0/server.py +571 -0
- zentao_cli-1.0.0/zentao-cli.py +385 -0
- zentao_cli-1.0.0/zentao_cli/__init__.py +7 -0
- zentao_cli-1.0.0/zentao_cli/cli.py +340 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
.venv/
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.pyc
|
|
5
|
+
*.pyo
|
|
6
|
+
|
|
7
|
+
# IDE
|
|
8
|
+
.vscode/
|
|
9
|
+
.idea/
|
|
10
|
+
|
|
11
|
+
# 备份和临时文件
|
|
12
|
+
archive/
|
|
13
|
+
*.tar.gz
|
|
14
|
+
*.bak
|
|
15
|
+
*.tmp
|
|
16
|
+
*.swp
|
|
17
|
+
|
|
18
|
+
# 日志
|
|
19
|
+
logs/
|
|
20
|
+
|
|
21
|
+
# 敏感信息(按需取消注释)
|
|
22
|
+
# configs/certs/
|
|
23
|
+
# ansible/group_vars/pve_hosts.yml
|
|
24
|
+
|
|
25
|
+
# Kiro specs(可选保留)
|
|
26
|
+
# .kiro/specs/
|
|
27
|
+
|
|
28
|
+
# OS
|
|
29
|
+
.DS_Store
|
|
30
|
+
Thumbs.db
|
zentao_cli-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 mcp-zentao contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: zentao-cli
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: 禅道项目管理 CLI - 任务查询、创建、编辑、工时记录、6R报表,可集成 OpenClaw
|
|
5
|
+
Project-URL: Homepage, https://github.com/bao-xie/zentao-cli
|
|
6
|
+
Project-URL: Issues, https://github.com/bao-xie/zentao-cli/issues
|
|
7
|
+
Author: Bao Xie
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: chandao,openclaw,project-management,task-management,zentao
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: System Administrators
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Bug Tracking
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: httpx>=0.27.0
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# zentao-cli
|
|
26
|
+
|
|
27
|
+
禅道项目管理 CLI 工具,支持任务查询、创建、编辑、工时记录和 6R 报表生成。
|
|
28
|
+
|
|
29
|
+
可独立使用,也可作为 [OpenClaw](https://docs.openclaw.ai) Skill 集成到 AI agent 中。
|
|
30
|
+
|
|
31
|
+
## 安装
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install zentao-cli
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
或通过 `pipx` / `uvx` 一次性运行:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
uvx zentao-cli list --status done
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 配置
|
|
44
|
+
|
|
45
|
+
通过环境变量配置(必填):
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
export ZENTAO_HOST="https://zentao.example.com"
|
|
49
|
+
export ZENTAO_ACCOUNT="your_account"
|
|
50
|
+
export ZENTAO_PASSWORD="your_password"
|
|
51
|
+
export ZENTAO_DEFAULT_EXECUTION_NAME="运维" # 默认执行名称
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
可选:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
export ZENTAO_DEFAULT_ASSIGNEE="" # 默认指派人,留空则同 ACCOUNT
|
|
58
|
+
export ZENTAO_DEFAULT_TASK_TYPE="devel" # 默认任务类型
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 使用
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 查询任务
|
|
65
|
+
zentao list
|
|
66
|
+
zentao list --status done
|
|
67
|
+
zentao list --start-date 2026-03-01 --end-date 2026-03-31
|
|
68
|
+
zentao list --json
|
|
69
|
+
|
|
70
|
+
# 任务详情
|
|
71
|
+
zentao get 123
|
|
72
|
+
|
|
73
|
+
# 创建任务(自动完成)
|
|
74
|
+
zentao create \
|
|
75
|
+
--title "修复 Nginx 配置" \
|
|
76
|
+
--description "生产环境配置错误" \
|
|
77
|
+
--work-content "排查并修复 upstream 配置" \
|
|
78
|
+
--acceptance-criteria "服务正常转发"
|
|
79
|
+
|
|
80
|
+
# 编辑任务
|
|
81
|
+
zentao edit 123 --status done
|
|
82
|
+
zentao edit 123 --title "新标题" --assigned-to someone
|
|
83
|
+
|
|
84
|
+
# 删除任务
|
|
85
|
+
zentao delete 123
|
|
86
|
+
|
|
87
|
+
# 记录工时
|
|
88
|
+
zentao effort 123 --hours 2 --work "排查并修复配置"
|
|
89
|
+
|
|
90
|
+
# 生成 6R 报表
|
|
91
|
+
zentao report --start-date 2026-03-01 --end-date 2026-03-15
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## OpenClaw 集成
|
|
95
|
+
|
|
96
|
+
安装 CLI 后,将 `SKILL.md` 复制到 OpenClaw skills 目录即可:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
pip install zentao-cli
|
|
100
|
+
mkdir -p ~/.openclaw/skills/zentao-task-manager
|
|
101
|
+
cp SKILL.md ~/.openclaw/skills/zentao-task-manager/
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
在 `~/.openclaw/openclaw.json` 中配置环境变量:
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"skills": {
|
|
109
|
+
"entries": {
|
|
110
|
+
"zentao-task-manager": {
|
|
111
|
+
"enabled": true,
|
|
112
|
+
"env": {
|
|
113
|
+
"ZENTAO_HOST": "https://zentao.example.com",
|
|
114
|
+
"ZENTAO_ACCOUNT": "your_account",
|
|
115
|
+
"ZENTAO_PASSWORD": "your_password",
|
|
116
|
+
"ZENTAO_DEFAULT_EXECUTION_NAME": "运维"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
重启 gateway 即可使用。
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
MIT
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# zentao-cli
|
|
2
|
+
|
|
3
|
+
禅道项目管理 CLI 工具,支持任务查询、创建、编辑、工时记录和 6R 报表生成。
|
|
4
|
+
|
|
5
|
+
可独立使用,也可作为 [OpenClaw](https://docs.openclaw.ai) Skill 集成到 AI agent 中。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install zentao-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
或通过 `pipx` / `uvx` 一次性运行:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
uvx zentao-cli list --status done
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 配置
|
|
20
|
+
|
|
21
|
+
通过环境变量配置(必填):
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
export ZENTAO_HOST="https://zentao.example.com"
|
|
25
|
+
export ZENTAO_ACCOUNT="your_account"
|
|
26
|
+
export ZENTAO_PASSWORD="your_password"
|
|
27
|
+
export ZENTAO_DEFAULT_EXECUTION_NAME="运维" # 默认执行名称
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
可选:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
export ZENTAO_DEFAULT_ASSIGNEE="" # 默认指派人,留空则同 ACCOUNT
|
|
34
|
+
export ZENTAO_DEFAULT_TASK_TYPE="devel" # 默认任务类型
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 使用
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 查询任务
|
|
41
|
+
zentao list
|
|
42
|
+
zentao list --status done
|
|
43
|
+
zentao list --start-date 2026-03-01 --end-date 2026-03-31
|
|
44
|
+
zentao list --json
|
|
45
|
+
|
|
46
|
+
# 任务详情
|
|
47
|
+
zentao get 123
|
|
48
|
+
|
|
49
|
+
# 创建任务(自动完成)
|
|
50
|
+
zentao create \
|
|
51
|
+
--title "修复 Nginx 配置" \
|
|
52
|
+
--description "生产环境配置错误" \
|
|
53
|
+
--work-content "排查并修复 upstream 配置" \
|
|
54
|
+
--acceptance-criteria "服务正常转发"
|
|
55
|
+
|
|
56
|
+
# 编辑任务
|
|
57
|
+
zentao edit 123 --status done
|
|
58
|
+
zentao edit 123 --title "新标题" --assigned-to someone
|
|
59
|
+
|
|
60
|
+
# 删除任务
|
|
61
|
+
zentao delete 123
|
|
62
|
+
|
|
63
|
+
# 记录工时
|
|
64
|
+
zentao effort 123 --hours 2 --work "排查并修复配置"
|
|
65
|
+
|
|
66
|
+
# 生成 6R 报表
|
|
67
|
+
zentao report --start-date 2026-03-01 --end-date 2026-03-15
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## OpenClaw 集成
|
|
71
|
+
|
|
72
|
+
安装 CLI 后,将 `SKILL.md` 复制到 OpenClaw skills 目录即可:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install zentao-cli
|
|
76
|
+
mkdir -p ~/.openclaw/skills/zentao-task-manager
|
|
77
|
+
cp SKILL.md ~/.openclaw/skills/zentao-task-manager/
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
在 `~/.openclaw/openclaw.json` 中配置环境变量:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"skills": {
|
|
85
|
+
"entries": {
|
|
86
|
+
"zentao-task-manager": {
|
|
87
|
+
"enabled": true,
|
|
88
|
+
"env": {
|
|
89
|
+
"ZENTAO_HOST": "https://zentao.example.com",
|
|
90
|
+
"ZENTAO_ACCOUNT": "your_account",
|
|
91
|
+
"ZENTAO_PASSWORD": "your_password",
|
|
92
|
+
"ZENTAO_DEFAULT_EXECUTION_NAME": "运维"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
重启 gateway 即可使用。
|
|
101
|
+
|
|
102
|
+
## License
|
|
103
|
+
|
|
104
|
+
MIT
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zentao-task-manager
|
|
3
|
+
description: 禅道项目管理 - 通过 zentao CLI 创建任务、记录工时、查询任务、生成6R报表
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
metadata:
|
|
6
|
+
{"openclaw": {"requires": {"bins": ["zentao"]}, "primaryEnv": "ZENTAO_HOST", "emoji": "📋"}}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 禅道任务管理 Skill
|
|
10
|
+
|
|
11
|
+
通过 `zentao` CLI 连接禅道项目管理系统,支持任务全生命周期管理和工时记录。
|
|
12
|
+
|
|
13
|
+
## CLI 用法
|
|
14
|
+
|
|
15
|
+
所有操作通过 `zentao` 命令完成。环境变量已预配置,直接调用即可。
|
|
16
|
+
|
|
17
|
+
### 查询任务
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# 查询所有任务
|
|
21
|
+
zentao list
|
|
22
|
+
|
|
23
|
+
# 按状态筛选
|
|
24
|
+
zentao list --status done
|
|
25
|
+
zentao list --status doing
|
|
26
|
+
|
|
27
|
+
# 按日期范围
|
|
28
|
+
zentao list --start-date 2026-03-01 --end-date 2026-03-31
|
|
29
|
+
|
|
30
|
+
# JSON 输出(适合程序处理)
|
|
31
|
+
zentao list --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 获取任务详情
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
zentao get 123
|
|
38
|
+
zentao get 123 --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 创建任务
|
|
42
|
+
|
|
43
|
+
将用户口语化描述整理为结构化格式后调用:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
zentao create \
|
|
47
|
+
--title "修复 Nginx 反向代理配置异常" \
|
|
48
|
+
--description "生产环境 Nginx 配置错误导致请求转发失败" \
|
|
49
|
+
--work-content "排查配置文件,修复 upstream 指向,重载并验证" \
|
|
50
|
+
--acceptance-criteria "配置语法检查通过,服务请求转发正常"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
可选参数:
|
|
54
|
+
- `--est-hours 2` — 预计工时
|
|
55
|
+
- `--start-date 2026-03-23` — 开始日期(默认今天)
|
|
56
|
+
- `--end-date 2026-03-23` — 结束日期(默认今天)
|
|
57
|
+
- `--assigned-to someone` — 指派给谁(默认当前用户)
|
|
58
|
+
- `--completion-note "已验证通过"` — 完成说明
|
|
59
|
+
- `--no-auto-finish` — 不自动完成(默认会自动完成任务)
|
|
60
|
+
|
|
61
|
+
### 编辑任务
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 修改标题
|
|
65
|
+
zentao edit 123 --title "新标题"
|
|
66
|
+
|
|
67
|
+
# 完成任务
|
|
68
|
+
zentao edit 123 --status done
|
|
69
|
+
|
|
70
|
+
# 修改多个字段
|
|
71
|
+
zentao edit 123 --assigned-to someone --end-date 2026-03-25
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 删除任务
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
zentao delete 123
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 记录工时
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
zentao effort 123 --hours 2 --work "排查并修复配置问题"
|
|
84
|
+
zentao effort 123 --hours 1.5 --work "代码审查" --date 2026-03-22
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 生成 6R 报表
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
zentao report --start-date 2026-03-01 --end-date 2026-03-15
|
|
91
|
+
zentao report --start-date 2026-03-01 --end-date 2026-03-15 --department "信息中心"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 创建任务的整理原则
|
|
95
|
+
|
|
96
|
+
当用户要求创建禅道任务时,将口语化描述整理为结构化格式:
|
|
97
|
+
|
|
98
|
+
1. 语言专业、克制、偏事实描述,不使用口语
|
|
99
|
+
2. 明确区分:任务标题 / 任务描述 / 工作内容 / 验收标准 / 完成说明
|
|
100
|
+
3. 描述聚焦"做了什么 + 交付了什么",避免空话
|
|
101
|
+
4. 不主动扩大范围,不替用户承诺时间或结果
|
|
102
|
+
5. 默认场景为企业运维/研发协作环境
|
|
103
|
+
6. 不指定日期默认使用今天
|
|
104
|
+
|
|
105
|
+
示例:用户说"帮我记一下今天修了 nginx 配置",整理为:
|
|
106
|
+
- 标题:修复 Nginx 反向代理配置异常
|
|
107
|
+
- 描述:生产环境 Nginx 配置错误导致请求转发失败
|
|
108
|
+
- 工作内容:排查配置文件,修复 upstream 指向,重载并验证
|
|
109
|
+
- 验收标准:配置语法检查通过,服务请求转发正常
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "zentao-cli"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "禅道项目管理 CLI - 任务查询、创建、编辑、工时记录、6R报表,可集成 OpenClaw"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = {text = "MIT"}
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Bao Xie"}
|
|
14
|
+
]
|
|
15
|
+
keywords = ["zentao", "chandao", "project-management", "task-management", "openclaw"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Intended Audience :: System Administrators",
|
|
20
|
+
"License :: OSI Approved :: MIT License",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Topic :: Software Development :: Bug Tracking",
|
|
27
|
+
]
|
|
28
|
+
dependencies = [
|
|
29
|
+
"httpx>=0.27.0",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.urls]
|
|
33
|
+
Homepage = "https://github.com/bao-xie/zentao-cli"
|
|
34
|
+
Issues = "https://github.com/bao-xie/zentao-cli/issues"
|
|
35
|
+
|
|
36
|
+
[project.scripts]
|
|
37
|
+
zentao = "zentao_cli:main"
|
|
38
|
+
|
|
39
|
+
[tool.hatch.build.targets.wheel]
|
|
40
|
+
packages = ["zentao_cli"]
|