@cvtoolman/pingcode-cli 0.2.0 → 0.2.2
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.
- package/README.md +468 -0
- package/dist/cli/commands/requirement.d.ts +3 -0
- package/dist/cli/commands/requirement.d.ts.map +1 -0
- package/dist/cli/commands/requirement.js +67 -0
- package/dist/cli/commands/requirement.js.map +1 -0
- package/dist/cli/commands/user.d.ts.map +1 -1
- package/dist/cli/commands/user.js +8 -0
- package/dist/cli/commands/user.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +17 -0
- package/dist/cli/setup.js.map +1 -1
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +13 -1
- package/dist/client/client.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
# PingCode CLI
|
|
2
|
+
|
|
3
|
+
**让 AI 编程工具拥有 PingCode 项目管理能力。**
|
|
4
|
+
|
|
5
|
+
PingCode CLI 是一个命令行工具,通过 Skill 文件为 AI 编程助手(Cursor、Claude Code、Windsurf、Cline 等)提供工作项管理、迭代跟踪、需求查询、Wiki 编写等项目管理操作,让 AI 真正参与你的研发流程。
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
你:帮我看看当前迭代里还有哪些未完成的工作项
|
|
9
|
+
AI:我查到了当前迭代中有 3 个未完成的工作项...
|
|
10
|
+
→ pingcode-cli sprint list --project-id xxx --status in_progress
|
|
11
|
+
→ pingcode-cli work-item list --project-ids xxx --format json
|
|
12
|
+
|
|
13
|
+
你:把需求 PRD-42 的技术方案写到 Wiki 上
|
|
14
|
+
AI:已读取需求详情,生成了技术方案并发布到 Wiki...
|
|
15
|
+
→ pingcode-cli requirement get PRD-42 --format json
|
|
16
|
+
→ pingcode-cli wiki page-create --space-id xxx --name "技术方案" --content "..."
|
|
17
|
+
|
|
18
|
+
你:在工作项 WI-108 上评论并 @张三 确认
|
|
19
|
+
AI:已发送评论...
|
|
20
|
+
→ pingcode-cli work-item comment-add WI-108 --content "请 <at xxx>张三</at> 确认"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 三步快速上手
|
|
24
|
+
|
|
25
|
+
### 第 1 步:安装 CLI
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g @cvtoolman/pingcode-cli
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
要求 Node.js >= 18.0.0。
|
|
32
|
+
|
|
33
|
+
### 第 2 步:认证配置
|
|
34
|
+
|
|
35
|
+
首次运行 CLI 会自动引导你完成认证:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pingcode-cli
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
支持两种认证模式:
|
|
42
|
+
|
|
43
|
+
| 模式 | 适用场景 | 说明 |
|
|
44
|
+
|------|---------|------|
|
|
45
|
+
| **客户端凭证模式**(推荐) | 企业级 API 调用 | 使用 Client ID / Secret 直接获取令牌 |
|
|
46
|
+
| **授权码模式** | 需要用户级权限的操作 | 通过浏览器授权获取用户令牌,可访问个人信息接口 |
|
|
47
|
+
|
|
48
|
+
> 部分 API(如 `/v1/myself`)仅支持用户级令牌。
|
|
49
|
+
|
|
50
|
+
### 第 3 步:安装 Skill 到你的 AI 工具
|
|
51
|
+
|
|
52
|
+
根据你使用的 AI 编程工具,选择对应的安装方式:
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## AI 工具集成指南
|
|
57
|
+
|
|
58
|
+
本项目的核心价值在于与 AI 编程工具的集成。Skill 文件(`SKILL.md`)告诉 AI 何时、如何调用 `pingcode-cli` 命令,让 AI 能主动操作 PingCode。
|
|
59
|
+
|
|
60
|
+
### Cursor
|
|
61
|
+
|
|
62
|
+
Cursor v0.50+ 内置了 Skills 系统,完全兼容 Claude Skills 格式。
|
|
63
|
+
|
|
64
|
+
**安装步骤:**
|
|
65
|
+
|
|
66
|
+
1. 确保 Cursor 版本 >= 0.50(建议切换到 Nightly/Beta 渠道)
|
|
67
|
+
2. 进入 Settings → Rules → 开启 **Agent Skills**
|
|
68
|
+
3. 将 `skills/pingcode/` 目录复制到以下位置之一:
|
|
69
|
+
- **项目级**:`<项目根目录>/.cursor/skills/pingcode/`(仅当前项目生效)
|
|
70
|
+
- **全局级**:`~/.cursor/skills/pingcode/`(所有项目生效)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 项目级安装(推荐,仅影响当前项目)
|
|
74
|
+
cp -r skills/pingcode/ .cursor/skills/pingcode/
|
|
75
|
+
|
|
76
|
+
# 全局安装(所有项目都能使用)
|
|
77
|
+
cp -r skills/pingcode/ ~/.cursor/skills/pingcode/
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
4. 重启 Cursor,在 Rules 面板中确认 `pingcode` Skill 已出现并勾选启用
|
|
81
|
+
5. 在对话中输入 `/pingcode` 或提到工作项、迭代、需求等关键词,AI 会自动加载 Skill
|
|
82
|
+
|
|
83
|
+
### Qoder
|
|
84
|
+
|
|
85
|
+
Qoder 原生支持 `SKILL.md` 格式的 Skills 系统,提供多种安装方式。
|
|
86
|
+
|
|
87
|
+
**方式一:手动放置(推荐)**
|
|
88
|
+
|
|
89
|
+
将 `skills/pingcode/` 目录复制到以下位置之一:
|
|
90
|
+
- **项目级**:`<项目根目录>/.qoder/skills/pingcode/`(仅当前项目生效,可提交到 Git 与团队共享)
|
|
91
|
+
- **用户级**:`~/.qoder/skills/pingcode/`(所有项目生效)
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 项目级安装(推荐,可提交 Git 与团队共享)
|
|
95
|
+
cp -r skills/pingcode/ .qoder/skills/pingcode/
|
|
96
|
+
|
|
97
|
+
# 用户级安装(所有项目都能使用)
|
|
98
|
+
cp -r skills/pingcode/ ~/.qoder/skills/pingcode/
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
重启 Qoder IDE 后,在对话框输入 `/` 即可看到 `pingcode` Skill。
|
|
102
|
+
|
|
103
|
+
**方式二:Skills CLI 一键安装**
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# 从 GitHub 仓库安装
|
|
107
|
+
npx skills add https://github.com/your-username/pingcode-cli --skill pingcode -a qoder
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
执行后按提示选择安装级别(Global = 用户级,Project = 项目级)和 copy 模式。
|
|
111
|
+
|
|
112
|
+
**方式三:对话中安装(QoderWork 用户)**
|
|
113
|
+
|
|
114
|
+
在 QoderWork 中发送以下消息即可自动安装:
|
|
115
|
+
|
|
116
|
+
> 请帮我把 https://github.com/your-username/pingcode-cli 下载并放到 ~/.qoderwork/skills/ 目录
|
|
117
|
+
|
|
118
|
+
### Claude Code
|
|
119
|
+
|
|
120
|
+
Claude Code 是 Skills 体系的标准制定者,原生支持 `SKILL.md` 格式。
|
|
121
|
+
|
|
122
|
+
**安装步骤:**
|
|
123
|
+
|
|
124
|
+
1. 将 `skills/pingcode/` 目录复制到以下位置之一:
|
|
125
|
+
- **项目级**:`<项目根目录>/.claude/skills/pingcode/`(仅当前项目生效)
|
|
126
|
+
- **全局级**:`~/.claude/skills/pingcode/`(所有项目生效)
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
# 项目级安装(推荐)
|
|
130
|
+
cp -r skills/pingcode/ .claude/skills/pingcode/
|
|
131
|
+
|
|
132
|
+
# 全局安装
|
|
133
|
+
cp -r skills/pingcode/ ~/.claude/skills/pingcode/
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
2. 在 Claude Code 中对话时,提到工作项、迭代、需求等关键词,AI 会自动识别并加载 Skill
|
|
137
|
+
3. 也可以在对话中直接输入 `/pingcode` 触发
|
|
138
|
+
|
|
139
|
+
### Windsurf
|
|
140
|
+
|
|
141
|
+
Windsurf 同样支持 Claude Skills 格式的 SKILL.md。
|
|
142
|
+
|
|
143
|
+
**安装步骤:**
|
|
144
|
+
|
|
145
|
+
1. 将 `skills/pingcode/` 目录复制到以下位置之一:
|
|
146
|
+
- **项目级**:`<项目根目录>/.windsurf/skills/pingcode/`
|
|
147
|
+
- **全局级**:`~/.windsurf/skills/pingcode/`
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# 项目级安装(推荐)
|
|
151
|
+
cp -r skills/pingcode/ .windsurf/skills/pingcode/
|
|
152
|
+
|
|
153
|
+
# 全局安装
|
|
154
|
+
cp -r skills/pingcode/ ~/.windsurf/skills/pingcode/
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
2. 重启 Windsurf 后生效
|
|
158
|
+
|
|
159
|
+
### VS Code + Cline
|
|
160
|
+
|
|
161
|
+
Cline 通过 MCP 服务器和自定义指令来扩展能力。
|
|
162
|
+
|
|
163
|
+
**方式一:自定义指令(推荐)**
|
|
164
|
+
|
|
165
|
+
在项目根目录创建或编辑 `.clinerules` 文件,将 Skill 内容写入:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# 将 SKILL.md 的内容追加到 .clinerules
|
|
169
|
+
cat skills/pingcode/SKILL.md >> .clinerules
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**方式二:MCP 服务器**
|
|
173
|
+
|
|
174
|
+
在 Cline 的 MCP 配置(`cline_mcp_settings.json`)中添加 pingcode-cli 作为命令工具:
|
|
175
|
+
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"mcpServers": {
|
|
179
|
+
"pingcode": {
|
|
180
|
+
"command": "pingcode-cli",
|
|
181
|
+
"args": []
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### VS Code + GitHub Copilot
|
|
188
|
+
|
|
189
|
+
在项目根目录创建 `.github/copilot-instructions.md`,将 Skill 内容写入:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
cat skills/pingcode/SKILL.md >> .github/copilot-instructions.md
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Kiro
|
|
196
|
+
|
|
197
|
+
Kiro 原生支持 `.kiro/skills/` 目录下的 SKILL.md 格式。
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# 项目级安装
|
|
201
|
+
cp -r skills/pingcode/ .kiro/skills/pingcode/
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Trae / OpenCode
|
|
205
|
+
|
|
206
|
+
Trae 和 OpenCode 同样兼容 Claude Skills 格式:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# 根据工具配置,将 skills/pingcode/ 复制到对应的 skills 目录
|
|
210
|
+
# 一般位于 ~/.trae/skills/ 或 ~/.opencode/skills/
|
|
211
|
+
cp -r skills/pingcode/ ~/.<工具名>/skills/pingcode/
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Skill 工作原理
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐
|
|
220
|
+
│ AI 编程工具 │ ──→ │ SKILL.md │ ──→ │ pingcode-cli │
|
|
221
|
+
│ (Cursor/Claude) │ │ + references/ │ │ 命令执行 │
|
|
222
|
+
└──────────────────┘ └──────────────────┘ └──────────────┘
|
|
223
|
+
│ │
|
|
224
|
+
│ │
|
|
225
|
+
AI 读取后判断 调用 PingCode API
|
|
226
|
+
何时 & 如何调用 返回数据给 AI
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
AI 编程工具启动时会扫描 Skills 目录,遇到 `SKILL.md` 后:
|
|
230
|
+
|
|
231
|
+
1. **预加载元数据** — 读取 YAML frontmatter 中的 `name` 和 `description`,知道"有一个 pingcode Skill 可用"
|
|
232
|
+
2. **按需加载指令** — 当对话中涉及工作项、迭代、需求、Wiki 等关键词时,AI 读取 SKILL.md 正文和 references 文件
|
|
233
|
+
3. **自动执行命令** — AI 根据指令组装 `pingcode-cli` 命令并执行,获取结果后回复用户
|
|
234
|
+
|
|
235
|
+
### Skill 模块总览
|
|
236
|
+
|
|
237
|
+
| 用户意图 | 模块 | Reference 文件 |
|
|
238
|
+
|---------|------|---------------|
|
|
239
|
+
| 查看/创建/搜索工作项、查看我的任务 | 工作项 | `references/work-item.md` |
|
|
240
|
+
| 查看/管理迭代 | 迭代 | `references/sprint.md` |
|
|
241
|
+
| 查看/创建 Wiki 页面、写技术方案 | Wiki | `references/wiki.md` |
|
|
242
|
+
| 查看项目信息、项目成员 | 项目 | `references/project.md` |
|
|
243
|
+
| 查看用户信息、查找用户 | 用户 | `references/user.md` |
|
|
244
|
+
| 认证登录、检查令牌状态 | 认证 | `references/auth.md` |
|
|
245
|
+
| 查看需求列表、读取需求详情、搜索需求 | 需求 | `references/requirement.md` |
|
|
246
|
+
|
|
247
|
+
## AI 使用场景示例
|
|
248
|
+
|
|
249
|
+
### 查看我的任务
|
|
250
|
+
|
|
251
|
+
> 你:帮我看看当前迭代还有什么没做完的
|
|
252
|
+
|
|
253
|
+
AI 会依次执行:
|
|
254
|
+
1. `pingcode-cli user me --format json` → 获取你的用户 ID
|
|
255
|
+
2. `pingcode-cli project list --format json` → 获取项目列表
|
|
256
|
+
3. `pingcode-cli sprint list --project-id <id> --status in_progress` → 获取进行中的迭代
|
|
257
|
+
4. `pingcode-cli work-item list --project-ids <id> --assignee-ids <user-id>` → 获取你的工作项
|
|
258
|
+
|
|
259
|
+
### 为需求写技术方案并发布到 Wiki
|
|
260
|
+
|
|
261
|
+
> 你:把需求 PRD-42 的技术方案写到 Wiki 上
|
|
262
|
+
|
|
263
|
+
AI 会依次执行:
|
|
264
|
+
1. `pingcode-cli requirement get PRD-42 --format json` → 读取需求详情
|
|
265
|
+
2. 根据需求内容生成技术方案
|
|
266
|
+
3. `pingcode-cli wiki space-list --format json` → 列出 Wiki 空间
|
|
267
|
+
4. `pingcode-cli wiki page-create --space-id <id> --name "技术方案:<标题>" --content "<内容>"` → 创建页面
|
|
268
|
+
|
|
269
|
+
### 评论工作项并 @mention
|
|
270
|
+
|
|
271
|
+
> 你:在工作项 WI-108 上评论,让张三确认一下
|
|
272
|
+
|
|
273
|
+
AI 会依次执行:
|
|
274
|
+
1. `pingcode-cli work-item get WI-108 --format json` → 确认工作项
|
|
275
|
+
2. `pingcode-cli user search 张三 --format json` → 查找张三的用户 ID
|
|
276
|
+
3. `pingcode-cli work-item comment-add WI-108 --content "请 <at user-id>张三</at> 确认需求"` → 发送评论
|
|
277
|
+
|
|
278
|
+
### 读取需求到本地
|
|
279
|
+
|
|
280
|
+
> 你:帮我导出需求 STORY-200 的详细内容
|
|
281
|
+
|
|
282
|
+
AI 会执行:
|
|
283
|
+
1. `pingcode-cli requirement get STORY-200 --format json` → 获取需求详情
|
|
284
|
+
2. AI 将结果保存到本地文件供后续引用
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## CLI 命令参考
|
|
289
|
+
|
|
290
|
+
除了 AI 自动调用,你也可以直接使用 CLI 命令:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
# 认证管理
|
|
294
|
+
pingcode-cli auth login # 交互式登录
|
|
295
|
+
pingcode-cli auth status # 查看认证状态
|
|
296
|
+
pingcode-cli auth config # 查看配置
|
|
297
|
+
pingcode-cli auth logout # 清除认证信息
|
|
298
|
+
|
|
299
|
+
# 用户
|
|
300
|
+
pingcode-cli user me # 查看当前用户信息
|
|
301
|
+
pingcode-cli user search <关键词> # 搜索用户
|
|
302
|
+
|
|
303
|
+
# 项目
|
|
304
|
+
pingcode-cli project list # 获取项目列表
|
|
305
|
+
pingcode-cli project members <id> # 获取项目成员
|
|
306
|
+
|
|
307
|
+
# 工作项
|
|
308
|
+
pingcode-cli work-item list # 获取工作项列表
|
|
309
|
+
pingcode-cli work-item get <id> # 获取工作项详情
|
|
310
|
+
pingcode-cli work-item create # 创建工作项
|
|
311
|
+
pingcode-cli work-item search <关键词> # 搜索工作项
|
|
312
|
+
pingcode-cli work-item comment-list <id> # 查看工作项评论
|
|
313
|
+
pingcode-cli work-item comment-add <id> --content "评论内容" # 添加评论
|
|
314
|
+
|
|
315
|
+
# 迭代
|
|
316
|
+
pingcode-cli sprint list --project-id <id> # 获取迭代列表
|
|
317
|
+
pingcode-cli sprint get <id> # 获取迭代详情
|
|
318
|
+
|
|
319
|
+
# 需求
|
|
320
|
+
pingcode-cli requirement list # 获取需求列表
|
|
321
|
+
pingcode-cli requirement get <id> # 获取需求详情
|
|
322
|
+
pingcode-cli requirement search <关键词> # 搜索需求
|
|
323
|
+
|
|
324
|
+
# Wiki
|
|
325
|
+
pingcode-cli wiki space-list # 获取 Wiki 空间列表
|
|
326
|
+
pingcode-cli wiki page-list --space-id <id> # 获取页面列表
|
|
327
|
+
pingcode-cli wiki page-create --space-id <id> --name "标题" --content "内容" # 创建页面
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
多数命令支持 `--format json` 参数输出 JSON 格式,便于 AI 解析和脚本组合使用。
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## 配置
|
|
335
|
+
|
|
336
|
+
### 方式一:交互式配置(推荐)
|
|
337
|
+
|
|
338
|
+
首次运行 CLI 时自动引导配置,凭证保存在全局配置中。
|
|
339
|
+
|
|
340
|
+
### 方式二:环境变量
|
|
341
|
+
|
|
342
|
+
在项目目录创建 `.env` 文件(参考 `.env.example`):
|
|
343
|
+
|
|
344
|
+
```env
|
|
345
|
+
PINGCODE_API_ROOT=https://open.pingcode.com
|
|
346
|
+
PINGCODE_AUTH_MODE=client
|
|
347
|
+
|
|
348
|
+
# 客户端凭证模式
|
|
349
|
+
PINGCODE_CLIENT_ID=your_client_id
|
|
350
|
+
PINGCODE_CLIENT_SECRET=your_client_secret
|
|
351
|
+
|
|
352
|
+
# 授权码模式
|
|
353
|
+
PINGCODE_USER_CLIENT_ID=your_user_client_id
|
|
354
|
+
PINGCODE_USER_CLIENT_SECRET=your_user_client_secret
|
|
355
|
+
|
|
356
|
+
# 可选
|
|
357
|
+
PINGCODE_ORG_ID=your_org_id
|
|
358
|
+
PINGCODE_PRODUCT_ID=your_product_id
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### 配置优先级
|
|
362
|
+
|
|
363
|
+
项目级 `.env` 文件优先级高于全局配置(`~/.pingcode/config.json`)。
|
|
364
|
+
|
|
365
|
+
### 全局配置文件位置
|
|
366
|
+
|
|
367
|
+
- 配置文件:`~/.pingcode/config.json`
|
|
368
|
+
- 令牌文件:`~/.pingcode/token.json`
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# 修改 API 地址
|
|
372
|
+
pingcode-cli auth config --set-api-root <url>
|
|
373
|
+
|
|
374
|
+
# 重置所有配置
|
|
375
|
+
pingcode-cli auth config --reset
|
|
376
|
+
|
|
377
|
+
# 清除认证信息(保留配置)
|
|
378
|
+
pingcode-cli auth logout
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## 作为 SDK 使用
|
|
384
|
+
|
|
385
|
+
除了 CLI 和 AI Skill 方式,你也可以在 Node.js 代码中直接调用:
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
import { PingCodeClient } from '@cvtoolman/pingcode-cli';
|
|
389
|
+
|
|
390
|
+
const client = new PingCodeClient({
|
|
391
|
+
apiRoot: 'https://open.pingcode.com',
|
|
392
|
+
clientId: 'your_client_id',
|
|
393
|
+
clientSecret: 'your_client_secret',
|
|
394
|
+
authMode: 'client',
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
await client.initSubApis();
|
|
398
|
+
|
|
399
|
+
// 获取项目列表
|
|
400
|
+
const projects = await client.listProjects();
|
|
401
|
+
|
|
402
|
+
// 搜索工作项
|
|
403
|
+
const results = await client.workItems.searchWorkItems('关键词');
|
|
404
|
+
|
|
405
|
+
// Wiki 操作
|
|
406
|
+
const spaces = await client.wiki.listSpaces();
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
也可以使用环境变量配置,无需传入参数:
|
|
410
|
+
|
|
411
|
+
```typescript
|
|
412
|
+
import { PingCodeClient } from '@cvtoolman/pingcode-cli';
|
|
413
|
+
|
|
414
|
+
const client = new PingCodeClient();
|
|
415
|
+
await client.initSubApis();
|
|
416
|
+
|
|
417
|
+
const myself = await client.myself.get();
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## 开发
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
git clone https://github.com/your-username/pingcode-cli.git
|
|
426
|
+
cd pingcode-cli
|
|
427
|
+
npm install
|
|
428
|
+
npm run build # 编译 TypeScript
|
|
429
|
+
npm run lint # 类型检查
|
|
430
|
+
npm test # 运行测试
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### 项目结构
|
|
434
|
+
|
|
435
|
+
```
|
|
436
|
+
src/
|
|
437
|
+
├── cli/ # CLI 命令行入口
|
|
438
|
+
│ ├── index.ts # CLI 主入口
|
|
439
|
+
│ ├── setup.ts # 首次使用引导 & 授权检查
|
|
440
|
+
│ ├── config-store.ts # 全局配置管理
|
|
441
|
+
│ ├── output.ts # 输出格式化(JSON/表格/键值)
|
|
442
|
+
│ └── commands/ # 各子命令实现
|
|
443
|
+
│ ├── auth.ts # 认证管理
|
|
444
|
+
│ ├── user.ts # 用户查询
|
|
445
|
+
│ ├── work-item.ts # 工作项管理
|
|
446
|
+
│ ├── sprint.ts # 迭代管理
|
|
447
|
+
│ ├── wiki.ts # Wiki 管理
|
|
448
|
+
│ ├── project.ts # 项目管理
|
|
449
|
+
│ └── requirement.ts # 需求管理
|
|
450
|
+
├── client/ # API Client SDK
|
|
451
|
+
│ ├── client.ts # 主客户端
|
|
452
|
+
│ ├── auth.ts # OAuth 认证管理器
|
|
453
|
+
│ ├── token-store.ts # 令牌持久化
|
|
454
|
+
│ ├── errors.ts # 错误类定义
|
|
455
|
+
│ ├── types.ts # 公共类型定义
|
|
456
|
+
│ └── api/ # 各子 API 实现
|
|
457
|
+
skills/pingcode/ # AI Skill 定义
|
|
458
|
+
├── SKILL.md # Skill 主描述文件
|
|
459
|
+
└── references/ # 各模块命令参考
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### 技术栈
|
|
463
|
+
|
|
464
|
+
- TypeScript (ES2022) / Commander.js / 原生 fetch / Vitest
|
|
465
|
+
|
|
466
|
+
## License
|
|
467
|
+
|
|
468
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,kBAAkB,SAAiD,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { getClient } from '../client.js';
|
|
3
|
+
import { printJson, printTable, printKeyValue } from '../output.js';
|
|
4
|
+
export const requirementCommand = new Command('requirement').description('需求管理');
|
|
5
|
+
requirementCommand
|
|
6
|
+
.command('list')
|
|
7
|
+
.description('获取需求列表')
|
|
8
|
+
.option('--product-id <id>', '产品 ID')
|
|
9
|
+
.option('--story-type <id>', '需求类型 ID')
|
|
10
|
+
.option('--status-id <id>', '状态 ID')
|
|
11
|
+
.option('--priority <p>', '优先级')
|
|
12
|
+
.option('--page-index <n>', '页码', '0')
|
|
13
|
+
.option('--page-size <n>', '每页数量', '30')
|
|
14
|
+
.option('--format <format>', '输出格式', 'text')
|
|
15
|
+
.action(async (opts) => {
|
|
16
|
+
try {
|
|
17
|
+
const client = await getClient();
|
|
18
|
+
const data = await client.stories.listStories({
|
|
19
|
+
productId: opts.productId,
|
|
20
|
+
storyType: opts.storyType,
|
|
21
|
+
statusId: opts.statusId,
|
|
22
|
+
priority: opts.priority,
|
|
23
|
+
pageIndex: Number(opts.pageIndex),
|
|
24
|
+
pageSize: Number(opts.pageSize),
|
|
25
|
+
});
|
|
26
|
+
opts.format === 'json' ? printJson(data) : printTable(data.values || []);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
console.error(e.message);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
requirementCommand
|
|
34
|
+
.command('get <id>')
|
|
35
|
+
.description('获取需求详情')
|
|
36
|
+
.option('--product-id <id>', '产品 ID')
|
|
37
|
+
.option('--format <format>', '输出格式', 'text')
|
|
38
|
+
.action(async (id, opts) => {
|
|
39
|
+
try {
|
|
40
|
+
const client = await getClient();
|
|
41
|
+
const data = await client.stories.getStory(id, opts.productId);
|
|
42
|
+
opts.format === 'json' ? printJson(data) : printKeyValue(data);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error(e.message);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
requirementCommand
|
|
50
|
+
.command('search <keyword>')
|
|
51
|
+
.description('搜索需求')
|
|
52
|
+
.option('--product-id <id>', '产品 ID')
|
|
53
|
+
.option('--page-index <n>', '页码', '0')
|
|
54
|
+
.option('--page-size <n>', '每页数量', '30')
|
|
55
|
+
.option('--format <format>', '输出格式', 'text')
|
|
56
|
+
.action(async (keyword, opts) => {
|
|
57
|
+
try {
|
|
58
|
+
const client = await getClient();
|
|
59
|
+
const data = await client.stories.searchStories(keyword, opts.productId, Number(opts.pageIndex), Number(opts.pageSize));
|
|
60
|
+
opts.format === 'json' ? printJson(data) : printTable(data.values || []);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
console.error(e.message);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=requirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../../src/cli/commands/requirement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAA0C,CAAC"}
|
|
@@ -9,6 +9,14 @@ userCommand
|
|
|
9
9
|
.action(async (opts) => {
|
|
10
10
|
try {
|
|
11
11
|
const client = await getClient();
|
|
12
|
+
// /v1/myself 端点需要用户令牌,客户端凭证(企业令牌)不支持此接口
|
|
13
|
+
if (client.auth.authMode === 'client') {
|
|
14
|
+
console.error('该命令需要用户级令牌(授权码模式),当前使用的是客户端凭证模式(企业令牌)。');
|
|
15
|
+
console.error('请使用授权码模式登录以获取用户令牌:');
|
|
16
|
+
console.error(' 1. 运行 pingcode-cli auth login,选择「授权码模式」');
|
|
17
|
+
console.error(' 2. 或设置环境变量 PINGCODE_AUTH_MODE=user');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
12
20
|
const data = await client.myself.getMyself();
|
|
13
21
|
opts.format === 'json' ? printJson(data) : printKeyValue(data);
|
|
14
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/cli/commands/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnE,WAAW;KACR,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,UAAU,CAAC;KACvB,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,wCAAwC;QACxC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { workItemCommand } from './commands/work-item.js';
|
|
|
11
11
|
import { sprintCommand } from './commands/sprint.js';
|
|
12
12
|
import { wikiCommand } from './commands/wiki.js';
|
|
13
13
|
import { projectCommand } from './commands/project.js';
|
|
14
|
+
import { requirementCommand } from './commands/requirement.js';
|
|
14
15
|
// 将全局配置(~/.pingcode/config.json)注入环境变量
|
|
15
16
|
applyGlobalConfigToEnv();
|
|
16
17
|
const program = new Command('pingcode-cli')
|
|
@@ -22,6 +23,7 @@ program.addCommand(workItemCommand);
|
|
|
22
23
|
program.addCommand(sprintCommand);
|
|
23
24
|
program.addCommand(wikiCommand);
|
|
24
25
|
program.addCommand(projectCommand);
|
|
26
|
+
program.addCommand(requirementCommand);
|
|
25
27
|
// auth 相关子命令不需要预检查授权(避免死循环)
|
|
26
28
|
const AUTH_COMMANDS = ['auth', 'help', '--help', '-h', '--version', '-V'];
|
|
27
29
|
async function main() {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,uCAAuC;AACvC,sBAAsB,EAAE,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACxC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEvC,4BAA4B;AAC5B,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAE1E,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzB,uBAAuB;IACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/cli/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,QAAA,MAAM,iBAAiB,QAAqD,CAAC;AAE7E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxD;AA6HD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,QAAA,MAAM,iBAAiB,QAAqD,CAAC;AAE7E,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxD;AA6HD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DtD;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/cli/setup.js
CHANGED
|
@@ -204,6 +204,23 @@ export async function interactiveSetup() {
|
|
|
204
204
|
'客户端凭证模式 — 使用 Client ID / Secret 直接获取令牌(推荐)',
|
|
205
205
|
'授权码模式 — 通过浏览器授权获取用户级令牌',
|
|
206
206
|
]);
|
|
207
|
+
// 重新配置时清除对应模式的旧凭证,强制用户重新输入
|
|
208
|
+
if (tokenValid) {
|
|
209
|
+
if (choice === 1) {
|
|
210
|
+
delete config.clientId;
|
|
211
|
+
delete config.clientSecret;
|
|
212
|
+
saveGlobalConfig(config);
|
|
213
|
+
delete process.env.PINGCODE_CLIENT_ID;
|
|
214
|
+
delete process.env.PINGCODE_CLIENT_SECRET;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
delete config.userClientId;
|
|
218
|
+
delete config.userClientSecret;
|
|
219
|
+
saveGlobalConfig(config);
|
|
220
|
+
delete process.env.PINGCODE_USER_CLIENT_ID;
|
|
221
|
+
delete process.env.PINGCODE_USER_CLIENT_SECRET;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
207
224
|
if (choice === 1) {
|
|
208
225
|
await setupClientCredentials();
|
|
209
226
|
}
|
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3E,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,UAAU,CAAC,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAM;IACpB,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,OAAO,CAAC,SAAS,CAAC,CAAM;gBAEZ,OAAO,GAAE,qBAA0B;YAkBjC,SAAS;IAWvB,OAAO,CAAC,cAAc,CAAS;IAEzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC,IAAI,OAAO,QAA6B;IACxC,IAAI,SAAS,QAA+B;IAC5C,IAAI,OAAO,QAA6B;IACxC,IAAI,YAAY,QAAkC;IAClD,IAAI,IAAI,QAA0B;IAClC,IAAI,MAAM,QAA4B;IACtC,IAAI,QAAQ,QAA8B;YAI5B,QAAQ;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE3E,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,UAAU,CAAC,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAM;IACpB,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,OAAO,CAAC,SAAS,CAAC,CAAM;gBAEZ,OAAO,GAAE,qBAA0B;YAkBjC,SAAS;IAWvB,OAAO,CAAC,cAAc,CAAS;IAEzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC,IAAI,OAAO,QAA6B;IACxC,IAAI,SAAS,QAA+B;IAC5C,IAAI,OAAO,QAA6B;IACxC,IAAI,YAAY,QAAkC;IAClD,IAAI,IAAI,QAA0B;IAClC,IAAI,MAAM,QAA4B;IACtC,IAAI,QAAQ,QAA8B;YAI5B,QAAQ;IAoDhB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI3E,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1E,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5E,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAMnD,OAAO,CAAC,cAAc;IAIhB,YAAY,CAAC,SAAS,SAAI,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3C,YAAY,CAAC,SAAS,SAAI,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAItE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAI,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI/F,mBAAmB,CAAC,SAAS,SAAI,EAAE,QAAQ,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI7E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAG5C"}
|
package/dist/client/client.js
CHANGED
|
@@ -103,7 +103,19 @@ export class PingCodeClient {
|
|
|
103
103
|
if (res.status === 401 || res.status === 403) {
|
|
104
104
|
const lower = text.toLowerCase();
|
|
105
105
|
if (lower.includes('token') || lower.includes('unauthorized') || lower.includes('forbidden')) {
|
|
106
|
-
|
|
106
|
+
let msg = '认证失败:访问令牌无效或已过期';
|
|
107
|
+
if (this.auth.authMode === 'client') {
|
|
108
|
+
msg += '\n\n当前使用的是客户端凭证模式(企业令牌)。部分接口(如 /v1/myself)需要用户级令牌。';
|
|
109
|
+
msg += '\n请尝试以下步骤:';
|
|
110
|
+
msg += '\n 1. 运行 pingcode-cli auth login,选择「授权码模式」获取用户令牌';
|
|
111
|
+
msg += '\n 2. 运行 pingcode-cli auth status 检查当前认证状态';
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
msg += '\n\n请尝试以下步骤:';
|
|
115
|
+
msg += '\n 1. 运行 pingcode-cli auth status 检查当前认证状态';
|
|
116
|
+
msg += '\n 2. 运行 pingcode-cli auth login 重新登录';
|
|
117
|
+
}
|
|
118
|
+
throw new AuthenticationError(msg);
|
|
107
119
|
}
|
|
108
120
|
}
|
|
109
121
|
throw new ApiError(`API 请求失败: HTTP ${res.status}`, res.status, text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|