@kevisual/cnb 0.0.10 → 0.0.13
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/agent/app.ts +1 -5
- package/agent/opencode.ts +1 -1
- package/agent/routes/call/index.ts +30 -28
- package/agent/routes/cnb-env/check.ts +1 -1
- package/agent/routes/cnb-env/env.ts +2 -2
- package/agent/routes/cnb-env/vscode.ts +2 -2
- package/agent/routes/index.ts +3 -3
- package/agent/routes/issues/issue.ts +2 -2
- package/agent/routes/issues/list.ts +1 -1
- package/agent/routes/knowledge/ai.ts +2 -2
- package/agent/routes/repo/list.ts +1 -1
- package/agent/routes/repo/repo.ts +3 -3
- package/agent/routes/workspace/index.ts +7 -6
- package/agent/routes/workspace/keep.ts +214 -0
- package/agent/routes/workspace/skills.ts +1 -1
- package/dist/keep.d.ts +1 -0
- package/dist/keep.js +3 -0
- package/dist/opencode.js +8388 -20067
- package/dist/routes.d.ts +744 -0
- package/dist/routes.js +54750 -0
- package/package.json +8 -2
- package/src/workspace/keep-live.ts +9 -5
- package/src/workspace/keep-worker.ts +13 -0
package/dist/routes.d.ts
ADDED
|
@@ -0,0 +1,744 @@
|
|
|
1
|
+
import { QueryRouterServer } from '@kevisual/router';
|
|
2
|
+
import { Result as Result$1 } from '@kevisual/query/query';
|
|
3
|
+
import { Result as Result$2 } from '@kevisual/query';
|
|
4
|
+
|
|
5
|
+
type CNBCoreOptions<T = {}> = {
|
|
6
|
+
token: string;
|
|
7
|
+
/**
|
|
8
|
+
* 对 cnb 界面操作定制模块功能时需要传入 cookie
|
|
9
|
+
*/
|
|
10
|
+
cookie?: string;
|
|
11
|
+
cnb?: CNBCore;
|
|
12
|
+
} & T;
|
|
13
|
+
type RequestOptions = {
|
|
14
|
+
url?: string;
|
|
15
|
+
method?: string;
|
|
16
|
+
data?: Record<string, any>;
|
|
17
|
+
body?: any;
|
|
18
|
+
params?: Record<string, any>;
|
|
19
|
+
headers?: Record<string, any>;
|
|
20
|
+
useCookie?: boolean;
|
|
21
|
+
useOrigin?: boolean;
|
|
22
|
+
};
|
|
23
|
+
declare class CNBCore {
|
|
24
|
+
baseURL: string;
|
|
25
|
+
token: string;
|
|
26
|
+
cookie?: string;
|
|
27
|
+
constructor(options: CNBCoreOptions);
|
|
28
|
+
request({ url, method, data, params, headers, body, useCookie, useOrigin }: RequestOptions): Promise<any>;
|
|
29
|
+
makeUrl(url?: string): string;
|
|
30
|
+
get<T = any>({ url, ...REST }: RequestOptions): Promise<T>;
|
|
31
|
+
post<T = any>({ url, ...REST }: RequestOptions): Promise<T>;
|
|
32
|
+
put<T = any>({ url, ...REST }: RequestOptions): Promise<T>;
|
|
33
|
+
delete<T = any>({ url, ...REST }: RequestOptions): Promise<T>;
|
|
34
|
+
patch<T = any>({ url, ...REST }: RequestOptions): Promise<T>;
|
|
35
|
+
/**
|
|
36
|
+
* 通过 PUT 请求上传文件内容
|
|
37
|
+
* @param data 包含 URL、token 和文件内容
|
|
38
|
+
* @returns 上传结果
|
|
39
|
+
*/
|
|
40
|
+
putFile(data: {
|
|
41
|
+
url: string;
|
|
42
|
+
token: string;
|
|
43
|
+
content: string | Buffer;
|
|
44
|
+
}): Promise<any>;
|
|
45
|
+
}
|
|
46
|
+
type Result<T = any> = {
|
|
47
|
+
code: number;
|
|
48
|
+
message: string;
|
|
49
|
+
data: T;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @title 工作空间管理模块
|
|
54
|
+
* @description 提供云原生构建工作空间的管理功能,包括列表查询、创建、更新和删除工作空间,支持多种过滤条件和分页选项
|
|
55
|
+
* @tags workspace, cloud-native, development-environment, cnb, api
|
|
56
|
+
* @createdAt 2025-12-04
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 工作空间列表查询参数
|
|
61
|
+
*/
|
|
62
|
+
interface ListParams {
|
|
63
|
+
/** Git 分支名称,例如 "main" */
|
|
64
|
+
branch?: string;
|
|
65
|
+
/** 查询结束时间,格式 YYYY-MM-DD HH:mm:ssZZ,例如 2024-12-01 00:00:00+0800 */
|
|
66
|
+
end?: string;
|
|
67
|
+
/** 分页页码,默认为 1 */
|
|
68
|
+
page?: number;
|
|
69
|
+
/** 分页大小,默认 20,最大 100 */
|
|
70
|
+
pageSize?: number;
|
|
71
|
+
/** 仓库路径,例如 "groupname/reponame" */
|
|
72
|
+
slug?: string;
|
|
73
|
+
/** 查询开始时间,格式 YYYY-MM-DD HH:mm:ssZZ,例如 2024-12-01 00:00:00+0800 */
|
|
74
|
+
start?: string;
|
|
75
|
+
/** 开发环境状态,running: 开发环境已启动,closed: 开发环境已关闭 */
|
|
76
|
+
status?: 'running' | 'closed';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 云原生开发环境管理模块
|
|
80
|
+
* https://api.cnb.cool/#/operations/GetWorkspaceDetail
|
|
81
|
+
*/
|
|
82
|
+
declare class Workspace extends CNBCore {
|
|
83
|
+
constructor(token: string);
|
|
84
|
+
/**
|
|
85
|
+
* 删除我的云原生开发环境
|
|
86
|
+
* @param params 删除参数,pipelineId 和 sn 二选一,优先使用 pipelineId
|
|
87
|
+
*/
|
|
88
|
+
deleteWorkspace(params: {
|
|
89
|
+
pipelineId?: string;
|
|
90
|
+
sn?: string;
|
|
91
|
+
}): Promise<{
|
|
92
|
+
code: number;
|
|
93
|
+
message: string;
|
|
94
|
+
}>;
|
|
95
|
+
/** 获取我的云原生开发环境列表 */
|
|
96
|
+
list(params?: ListParams): Promise<Result$1<WorkspaceResult>>;
|
|
97
|
+
/**
|
|
98
|
+
* 停止我的云原生开发环境
|
|
99
|
+
* @param params 停止参数,pipelineId 和 sn 二选一,优先使用 pipelineId
|
|
100
|
+
*/
|
|
101
|
+
stopWorkspace(params: {
|
|
102
|
+
pipelineId?: string;
|
|
103
|
+
sn?: string;
|
|
104
|
+
}): Promise<{
|
|
105
|
+
buildLogUrl: string;
|
|
106
|
+
message: string;
|
|
107
|
+
sn: string;
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* 根据流水线 SN 查询云原生开发访问地址
|
|
111
|
+
* @param repo 仓库路径,例如:groupname/reponame
|
|
112
|
+
* @param sn 流水线构建号
|
|
113
|
+
*/
|
|
114
|
+
getDetail(repo: string, sn: string): Promise<{
|
|
115
|
+
codebuddy: string;
|
|
116
|
+
codebuddycn: string;
|
|
117
|
+
cursor: string;
|
|
118
|
+
jetbrains: Record<string, string>;
|
|
119
|
+
jumpUrl: string;
|
|
120
|
+
remoteSsh: string;
|
|
121
|
+
ssh: string;
|
|
122
|
+
vscode: string;
|
|
123
|
+
'vscode-insiders': string;
|
|
124
|
+
webide: string;
|
|
125
|
+
}>;
|
|
126
|
+
/**
|
|
127
|
+
* 启动云原生开发环境,已存在环境则直接打开,否则重新创建开发环境
|
|
128
|
+
* @param repo 仓库路径,例如:groupname/reponame
|
|
129
|
+
* @param params 启动参数
|
|
130
|
+
* @returns 返回启动结果,包含以下字段:
|
|
131
|
+
*/
|
|
132
|
+
startWorkspace(repo: string, params: {
|
|
133
|
+
branch?: string;
|
|
134
|
+
ref?: string;
|
|
135
|
+
}): Promise<Result$1<{
|
|
136
|
+
/** 仅新创建开发环境时返回,表示创建开发环境的流水线日志地址 */
|
|
137
|
+
buildLogUrl?: string;
|
|
138
|
+
/** 仅新创建开发环境时返回,表示创建开发环境的提示信息 */
|
|
139
|
+
message?: string;
|
|
140
|
+
/** 仅新创建开发环境时返回,表示创建开发环境的流水线 sn */
|
|
141
|
+
sn?: string;
|
|
142
|
+
/** 如果存在开发环境,则返回 WebIDE 访问 url;如果不存在开发环境,则返回启动云原生开发的 loading 页面 url 地址 */
|
|
143
|
+
url: string;
|
|
144
|
+
}>>;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 工作空间信息接口
|
|
148
|
+
*/
|
|
149
|
+
interface WorkspaceInfo {
|
|
150
|
+
/** 分支名,例如:main */
|
|
151
|
+
branch: string;
|
|
152
|
+
/** 业务 ID */
|
|
153
|
+
business_id: string;
|
|
154
|
+
/** 备份的 commit 数 */
|
|
155
|
+
commit_count: number | null;
|
|
156
|
+
/** 开发环境创建时间,例如:2024-12-02T03:20:22.000Z */
|
|
157
|
+
create_time: string;
|
|
158
|
+
/** 开发环境持续时间,单位:ms(非实时更新) */
|
|
159
|
+
duration: number;
|
|
160
|
+
/** 备份的文件数 */
|
|
161
|
+
file_count: number;
|
|
162
|
+
/** 备份的文件列表,仅前五个备份文件相对路径 */
|
|
163
|
+
file_list: string;
|
|
164
|
+
/** 是否为预览环境,0: 否,1: 是 */
|
|
165
|
+
is_preview: number;
|
|
166
|
+
/** JetBrains IDE 列表 */
|
|
167
|
+
jetbrainsList: any[];
|
|
168
|
+
/** 环境销毁时远程最新的 commit short hash */
|
|
169
|
+
latest_sha: string | null;
|
|
170
|
+
/** 创建环境的子流水线 id */
|
|
171
|
+
pipeline_id: string;
|
|
172
|
+
/** 备份的 stash 数 */
|
|
173
|
+
remote_stash_count: number | null;
|
|
174
|
+
/** 仓库 ID */
|
|
175
|
+
repo_id: string;
|
|
176
|
+
/** 仓库地址 */
|
|
177
|
+
repo_url: string;
|
|
178
|
+
/** 恢复备份代码的流水线 id,如果有值表示备份代码已被恢复(重建环境时会恢复备份代码) */
|
|
179
|
+
restore_id: string | null;
|
|
180
|
+
/** 单个 stash 标识,1: 是,0: 否 */
|
|
181
|
+
single_stash: number;
|
|
182
|
+
/** 仓库路径,例如:groupname/reponame */
|
|
183
|
+
slug: string;
|
|
184
|
+
/** 创建开发环境的流水线 sn */
|
|
185
|
+
sn: string;
|
|
186
|
+
/** 开发环境是否支持 ssh 链接 */
|
|
187
|
+
ssh: boolean;
|
|
188
|
+
/** 本地 stash 数 */
|
|
189
|
+
stash_count: number;
|
|
190
|
+
/** 工作区状态,running: 开发环境已启动,closed:开发环境已关闭 */
|
|
191
|
+
status: string;
|
|
192
|
+
/** 用户名 */
|
|
193
|
+
user_name: string;
|
|
194
|
+
/** 开发环境默认工作区路径 */
|
|
195
|
+
workspace: string;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* 工作空间列表响应结果
|
|
199
|
+
*/
|
|
200
|
+
type WorkspaceResult = {
|
|
201
|
+
/** 是否有更多数据 */
|
|
202
|
+
hasMore: boolean;
|
|
203
|
+
/** 工作空间列表 */
|
|
204
|
+
list: WorkspaceInfo[];
|
|
205
|
+
/** 分页信息 */
|
|
206
|
+
pageInfo: {
|
|
207
|
+
/** 当前页码 */
|
|
208
|
+
page: number;
|
|
209
|
+
/** 每页大小 */
|
|
210
|
+
pageSize: number;
|
|
211
|
+
};
|
|
212
|
+
/** 总数量 */
|
|
213
|
+
total: number;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
declare class KnowledgeBase extends CNBCore {
|
|
217
|
+
constructor(options: CNBCoreOptions);
|
|
218
|
+
queryKnowledgeBase(repo: string, data: {
|
|
219
|
+
query: string;
|
|
220
|
+
score_threshold?: number;
|
|
221
|
+
top_k?: number;
|
|
222
|
+
metadata_filtering_conditions?: MetadataFilteringConditions;
|
|
223
|
+
}): Promise<Result<QueryRag[]>>;
|
|
224
|
+
getEmbeddingModels(repo: string): Promise<Result<Array<{
|
|
225
|
+
name: string;
|
|
226
|
+
dimensions: number;
|
|
227
|
+
}>>>;
|
|
228
|
+
getBase(repo: string): Promise<Result<any>>;
|
|
229
|
+
deleteBase(repo: string): Promise<Result<any>>;
|
|
230
|
+
}
|
|
231
|
+
type MetadataFilteringConditions = {
|
|
232
|
+
conditions: Array<{
|
|
233
|
+
comparison_operator?: 'is' | 'is not' | 'contains' | 'not contains' | 'start with' | 'end with' | 'is empty' | 'is not empty';
|
|
234
|
+
name?: "position" | "path" | "type";
|
|
235
|
+
/**
|
|
236
|
+
* "is empty" and "is not empty" 时候忽略该字段
|
|
237
|
+
*/
|
|
238
|
+
value?: string;
|
|
239
|
+
}>;
|
|
240
|
+
logical_operator?: 'adn' | 'or';
|
|
241
|
+
};
|
|
242
|
+
type QueryRag = {
|
|
243
|
+
chunk: string;
|
|
244
|
+
score: number;
|
|
245
|
+
metadata: {
|
|
246
|
+
hash: string;
|
|
247
|
+
name: string;
|
|
248
|
+
path: string;
|
|
249
|
+
position: string;
|
|
250
|
+
type: string;
|
|
251
|
+
url: string;
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
declare class Repo extends CNBCore {
|
|
256
|
+
constructor(options: CNBCoreOptions);
|
|
257
|
+
/**
|
|
258
|
+
* 创建代码仓库
|
|
259
|
+
* @param data
|
|
260
|
+
* @returns
|
|
261
|
+
*/
|
|
262
|
+
createRepo(data: CreateRepoData): Promise<any>;
|
|
263
|
+
deleteRepo(name: string): Promise<any>;
|
|
264
|
+
createCommit(repo: string, data: CreateCommitData): Promise<any>;
|
|
265
|
+
createBlobs(repo: string, data: {
|
|
266
|
+
content: string;
|
|
267
|
+
encoding?: 'utf-8' | 'base64';
|
|
268
|
+
}): Promise<any>;
|
|
269
|
+
uploadFiles(repo: string, data: {
|
|
270
|
+
ext?: any;
|
|
271
|
+
name?: string;
|
|
272
|
+
path?: string;
|
|
273
|
+
size?: number;
|
|
274
|
+
}): Promise<any>;
|
|
275
|
+
getCommitList(repo: string, params: {
|
|
276
|
+
author?: string;
|
|
277
|
+
commiter?: string;
|
|
278
|
+
page?: number;
|
|
279
|
+
page_size?: number;
|
|
280
|
+
sha?: string;
|
|
281
|
+
since?: string;
|
|
282
|
+
until?: string;
|
|
283
|
+
}, opts?: RequestOptions): Promise<any>;
|
|
284
|
+
getRepoList(params: {
|
|
285
|
+
desc?: boolean;
|
|
286
|
+
filter_type?: 'private' | 'public' | 'secret';
|
|
287
|
+
flags?: 'KnowledgeBase';
|
|
288
|
+
order_by?: 'created_at' | 'last_updated_at' | 'stars' | 'slug_path' | 'forks';
|
|
289
|
+
page?: number;
|
|
290
|
+
page_size?: number;
|
|
291
|
+
role?: 'owner' | 'maintainer' | 'developer' | 'reporter' | 'guest';
|
|
292
|
+
search?: string;
|
|
293
|
+
status?: 'active' | 'archived';
|
|
294
|
+
}): Promise<Result<RepoItem[]>>;
|
|
295
|
+
}
|
|
296
|
+
type CreateRepoData = {
|
|
297
|
+
description: string;
|
|
298
|
+
license?: 'MIT' | 'Apache-2.0' | 'GPL-3.0' | 'Unlicense';
|
|
299
|
+
name: string;
|
|
300
|
+
visibility: 'private' | 'public' | 'secret';
|
|
301
|
+
};
|
|
302
|
+
type CreateCommitData = {
|
|
303
|
+
base_branch?: string;
|
|
304
|
+
new_branch?: string;
|
|
305
|
+
message?: string;
|
|
306
|
+
parent_commit_sha?: string;
|
|
307
|
+
files?: Array<{
|
|
308
|
+
content: string;
|
|
309
|
+
path: string;
|
|
310
|
+
encoding?: 'raw' | 'utf-8' | 'base64';
|
|
311
|
+
is_delete?: boolean;
|
|
312
|
+
is_executable?: boolean;
|
|
313
|
+
}>;
|
|
314
|
+
};
|
|
315
|
+
type RepoItem = {
|
|
316
|
+
id: string;
|
|
317
|
+
name: string;
|
|
318
|
+
freeze: boolean;
|
|
319
|
+
status: number;
|
|
320
|
+
visibility_level: 'Public' | 'Private' | 'Secret';
|
|
321
|
+
flags: string;
|
|
322
|
+
created_at: string;
|
|
323
|
+
updated_at: string;
|
|
324
|
+
description: string;
|
|
325
|
+
site: string;
|
|
326
|
+
topics: string;
|
|
327
|
+
license: string;
|
|
328
|
+
display_module: {
|
|
329
|
+
activity: boolean;
|
|
330
|
+
contributors: boolean;
|
|
331
|
+
release: boolean;
|
|
332
|
+
};
|
|
333
|
+
star_count: number;
|
|
334
|
+
fork_count: number;
|
|
335
|
+
mark_count: number;
|
|
336
|
+
last_updated_at: string | null;
|
|
337
|
+
web_url: string;
|
|
338
|
+
path: string;
|
|
339
|
+
tags: string[] | null;
|
|
340
|
+
open_issue_count: number;
|
|
341
|
+
open_pull_request_count: number;
|
|
342
|
+
languages: {
|
|
343
|
+
language: string;
|
|
344
|
+
color: string;
|
|
345
|
+
};
|
|
346
|
+
second_languages: {
|
|
347
|
+
language: string;
|
|
348
|
+
color: string;
|
|
349
|
+
};
|
|
350
|
+
last_update_username: string;
|
|
351
|
+
last_update_nickname: string;
|
|
352
|
+
access: string;
|
|
353
|
+
stared: boolean;
|
|
354
|
+
star_time: string;
|
|
355
|
+
pinned: boolean;
|
|
356
|
+
pinned_time: string;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
declare class User extends CNBCore {
|
|
360
|
+
constructor(options: CNBCoreOptions<{}>);
|
|
361
|
+
/**
|
|
362
|
+
* 获取当前用户信息,使用 Cookie 认证
|
|
363
|
+
* @returns
|
|
364
|
+
*/
|
|
365
|
+
getCurrentUser(): Promise<Result$2<UserInfo>>;
|
|
366
|
+
/**
|
|
367
|
+
* 使用 Token 获取用户信息
|
|
368
|
+
* @returns
|
|
369
|
+
*/
|
|
370
|
+
getUser(): Promise<Result$2<UserInfo>>;
|
|
371
|
+
createAccessToken(data?: {
|
|
372
|
+
description?: string;
|
|
373
|
+
scope?: string;
|
|
374
|
+
}): Promise<AccessTokenResponse>;
|
|
375
|
+
getAccessTokens(params?: {
|
|
376
|
+
page?: number;
|
|
377
|
+
page_size?: number;
|
|
378
|
+
}): Promise<AccessTokenResponse[]>;
|
|
379
|
+
deleteAccessToken(tokenId: string): Promise<any>;
|
|
380
|
+
}
|
|
381
|
+
type AccessTokenResponse = {
|
|
382
|
+
token: string;
|
|
383
|
+
description: string;
|
|
384
|
+
};
|
|
385
|
+
type UserInfo = {
|
|
386
|
+
id: string;
|
|
387
|
+
username: string;
|
|
388
|
+
nickname: string;
|
|
389
|
+
type: number;
|
|
390
|
+
verified: number;
|
|
391
|
+
verified_expire_in: string;
|
|
392
|
+
created_at: string;
|
|
393
|
+
freeze: boolean;
|
|
394
|
+
locked: boolean;
|
|
395
|
+
avatar: string;
|
|
396
|
+
email: string;
|
|
397
|
+
next_updated_name_at: string;
|
|
398
|
+
updated_name_at: string;
|
|
399
|
+
updated_nick_at: string;
|
|
400
|
+
editable: {
|
|
401
|
+
avatar: boolean;
|
|
402
|
+
email: boolean;
|
|
403
|
+
logoff: boolean;
|
|
404
|
+
nickname: boolean;
|
|
405
|
+
'sync-data': boolean;
|
|
406
|
+
username: boolean;
|
|
407
|
+
};
|
|
408
|
+
language: string;
|
|
409
|
+
appearance: string;
|
|
410
|
+
gender: number;
|
|
411
|
+
bio: string;
|
|
412
|
+
company: string;
|
|
413
|
+
location: string;
|
|
414
|
+
site: string;
|
|
415
|
+
address: string;
|
|
416
|
+
wechat_mp: string;
|
|
417
|
+
wechat_mp_qrcode: string;
|
|
418
|
+
appreciate_status: number;
|
|
419
|
+
follow_count: number;
|
|
420
|
+
follower_count: number;
|
|
421
|
+
reward_count: number;
|
|
422
|
+
reward_amount: number;
|
|
423
|
+
stars_count: number;
|
|
424
|
+
group_count: number;
|
|
425
|
+
repo_count: number;
|
|
426
|
+
mission_count: number;
|
|
427
|
+
registry_count: number;
|
|
428
|
+
public_repo_count: number;
|
|
429
|
+
public_mission_count: number;
|
|
430
|
+
public_registry_count: number;
|
|
431
|
+
follow_repo_count: number;
|
|
432
|
+
follow_mission_count: number;
|
|
433
|
+
readme_repo_path: string;
|
|
434
|
+
last_login_at: string;
|
|
435
|
+
last_login_ip: string;
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
declare class Build extends CNBCore {
|
|
439
|
+
constructor(options: CNBCoreOptions);
|
|
440
|
+
startBuild(repo: string, data: StartBuildData): Promise<any>;
|
|
441
|
+
}
|
|
442
|
+
type StartBuildData = {
|
|
443
|
+
/**
|
|
444
|
+
* 触发分支,默认为主分支
|
|
445
|
+
*/
|
|
446
|
+
branch?: string;
|
|
447
|
+
/**
|
|
448
|
+
* 指定配置文件内容,yaml 格式
|
|
449
|
+
*/
|
|
450
|
+
config?: string;
|
|
451
|
+
/**
|
|
452
|
+
* 环境变量,对象格式
|
|
453
|
+
*/
|
|
454
|
+
env?: Record<string, string>;
|
|
455
|
+
/**
|
|
456
|
+
* 事件名,必须是 api_trigger 或以 api_trigger_ 开头,默认为 api_trigger
|
|
457
|
+
*/
|
|
458
|
+
event?: string;
|
|
459
|
+
/**
|
|
460
|
+
* commit id ,优先级比 tag 高,默认为分支最新提交记录
|
|
461
|
+
*/
|
|
462
|
+
sha?: string;
|
|
463
|
+
/**
|
|
464
|
+
* 是否等待构建正式触发,为false时会立刻返回 sn 和 buildLogUrl
|
|
465
|
+
*/
|
|
466
|
+
sync?: string;
|
|
467
|
+
/**
|
|
468
|
+
* 触发 tag,优先级比 branch 高
|
|
469
|
+
*/
|
|
470
|
+
tag?: string;
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
type IssueAssignee = {
|
|
474
|
+
nickname: string;
|
|
475
|
+
username: string;
|
|
476
|
+
};
|
|
477
|
+
type IssueLabel = {
|
|
478
|
+
color: string;
|
|
479
|
+
description: string;
|
|
480
|
+
id: string;
|
|
481
|
+
name: string;
|
|
482
|
+
};
|
|
483
|
+
type IssueAuthor = {
|
|
484
|
+
name: string;
|
|
485
|
+
body: string;
|
|
486
|
+
comment_count: number;
|
|
487
|
+
created_at: string;
|
|
488
|
+
ended_at: string;
|
|
489
|
+
};
|
|
490
|
+
type IssueItem = {
|
|
491
|
+
assignees: IssueAssignee[];
|
|
492
|
+
author: IssueAuthor;
|
|
493
|
+
labels: IssueLabel[];
|
|
494
|
+
body: string;
|
|
495
|
+
last_acted_at: string;
|
|
496
|
+
number: string;
|
|
497
|
+
priority: string;
|
|
498
|
+
started_at: string;
|
|
499
|
+
state: string;
|
|
500
|
+
state_reason: string;
|
|
501
|
+
title: string;
|
|
502
|
+
updated_at: string;
|
|
503
|
+
};
|
|
504
|
+
declare class Issue extends CNBCore {
|
|
505
|
+
constructor(options: CNBCoreOptions);
|
|
506
|
+
createIssue(repo: string, data: Partial<IssueItem>): Promise<any>;
|
|
507
|
+
updateIssue(repo: string, issueNumber: string | number, data: Partial<IssueItem>): Promise<any>;
|
|
508
|
+
getItem(repo: string, issueNumber: string | number): Promise<Result<IssueItem>>;
|
|
509
|
+
getList(repo: string, params?: Partial<GetListParams>): Promise<Result<IssueItem[]>>;
|
|
510
|
+
getCommentList(repo: string, issueNumber: string | number): Promise<any>;
|
|
511
|
+
setIssueProperty(repo: string, issueNumber: string | number, properties: {
|
|
512
|
+
[key: string]: any;
|
|
513
|
+
}[]): Promise<any>;
|
|
514
|
+
}
|
|
515
|
+
type GetListParams = {
|
|
516
|
+
/** 问题指派人名称,例如: 张三, 李四, -; - 表示不指派给任何人 */
|
|
517
|
+
assignees?: string;
|
|
518
|
+
/** 问题作者名称,例如: 张三, 李四 */
|
|
519
|
+
authors?: string;
|
|
520
|
+
/** 问题关闭时间过滤-开始,例如: 2022-01-31 */
|
|
521
|
+
close_time_begin?: string;
|
|
522
|
+
/** 问题关闭时间过滤-结束,例如: 2022-01-31 */
|
|
523
|
+
close_time_end?: string;
|
|
524
|
+
/** 问题搜索关键词 */
|
|
525
|
+
keyword?: string;
|
|
526
|
+
/** 问题标签,例如: git, bug, feature */
|
|
527
|
+
labels?: string;
|
|
528
|
+
/** 问题标签操作符,例如: contains_any, contains_all,默认: contains_any */
|
|
529
|
+
labels_operator?: string;
|
|
530
|
+
/** 问题排序,例如: created_at, -updated_at, reference_count;'-' 前缀表示降序 */
|
|
531
|
+
order_by?: string;
|
|
532
|
+
/** 分页页码。如果值小于 1,将自动调整为 1,默认: 1 */
|
|
533
|
+
page?: number;
|
|
534
|
+
/** 分页每页大小。如果值大于 100,将自动调整为 100,默认: 30 */
|
|
535
|
+
page_size?: number;
|
|
536
|
+
/** 问题优先级,例如: -1P, -2P, P0, P1, P2, P3 */
|
|
537
|
+
priority?: string;
|
|
538
|
+
/** 问题状态:open 或 closed */
|
|
539
|
+
state?: string;
|
|
540
|
+
/** 问题更新时间过滤-开始,例如: 2022-01-31 */
|
|
541
|
+
updated_time_begin?: string;
|
|
542
|
+
/** 问题更新时间过滤-结束,例如: 2022-01-31 */
|
|
543
|
+
updated_time_end?: string;
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
declare class Mission extends CNBCore {
|
|
547
|
+
constructor(options: CNBCoreOptions);
|
|
548
|
+
/**
|
|
549
|
+
* 查询组织下用户有权限查看的任务集
|
|
550
|
+
* @param params 查询参数
|
|
551
|
+
* @returns 任务集列表
|
|
552
|
+
*/
|
|
553
|
+
getMissions(group: string, params?: GetMissionsParams): Promise<Result<Missions4User[]>>;
|
|
554
|
+
/**
|
|
555
|
+
* 创建任务集
|
|
556
|
+
* @param data 创建任务集数据
|
|
557
|
+
* @returns 创建结果
|
|
558
|
+
*/
|
|
559
|
+
createMission(repo: string, data: CreateMissionData): Promise<Result<any>>;
|
|
560
|
+
/**
|
|
561
|
+
* 删除任务集
|
|
562
|
+
* @param mission 任务集路径
|
|
563
|
+
* @param identityTicket 微信身份验证票据
|
|
564
|
+
* @returns 删除结果
|
|
565
|
+
*/
|
|
566
|
+
deleteMission(mission: string, identityTicket?: string): Promise<Result<any>>;
|
|
567
|
+
/**
|
|
568
|
+
* 获取任务集视图配置
|
|
569
|
+
* @param mission 任务集 slug
|
|
570
|
+
* @param viewId 视图 ID
|
|
571
|
+
* @returns 视图配置
|
|
572
|
+
*/
|
|
573
|
+
getMissionViewConfig(mission: string, viewId: string): Promise<Result<MissionViewConfig>>;
|
|
574
|
+
/**
|
|
575
|
+
* 设置任务集视图配置
|
|
576
|
+
* @param mission 任务集 slug
|
|
577
|
+
* @param config 视图配置
|
|
578
|
+
* @returns 设置结果
|
|
579
|
+
*/
|
|
580
|
+
setMissionViewConfig(mission: string, config: MissionViewConfig): Promise<Result<any>>;
|
|
581
|
+
/**
|
|
582
|
+
* 获取任务集视图列表
|
|
583
|
+
* @param mission 任务集 slug
|
|
584
|
+
* @returns 视图列表
|
|
585
|
+
*/
|
|
586
|
+
getMissionViewList(mission: string): Promise<Result<MissionView[]>>;
|
|
587
|
+
/**
|
|
588
|
+
* 添加或修改任务集视图
|
|
589
|
+
* @param mission 任务集 slug
|
|
590
|
+
* @param view 视图数据
|
|
591
|
+
* @returns 操作结果
|
|
592
|
+
*/
|
|
593
|
+
putMissionView(mission: string, view: MissionView): Promise<Result<any>>;
|
|
594
|
+
/**
|
|
595
|
+
* 排序任务集视图
|
|
596
|
+
* @param mission 任务集 slug
|
|
597
|
+
* @param data 排序数据
|
|
598
|
+
* @returns 操作结果
|
|
599
|
+
*/
|
|
600
|
+
sortMissionViews(mission: string, data: MissionPostViewReq): Promise<Result<any>>;
|
|
601
|
+
/**
|
|
602
|
+
* 改变任务集可见性
|
|
603
|
+
* @param mission 任务集路径
|
|
604
|
+
* @param visibility 可见性 (Private 或 Public)
|
|
605
|
+
* @returns 操作结果
|
|
606
|
+
*/
|
|
607
|
+
setVisibility(mission: string, visibility: 'Private' | 'Public'): Promise<Result<any>>;
|
|
608
|
+
}
|
|
609
|
+
type GetMissionsParams = {
|
|
610
|
+
page?: number;
|
|
611
|
+
page_size?: number;
|
|
612
|
+
filter_type?: 'private' | 'public';
|
|
613
|
+
order_by?: 'created_at' | 'name';
|
|
614
|
+
desc?: boolean;
|
|
615
|
+
descendant?: 'all' | 'sub' | 'grand';
|
|
616
|
+
search?: string;
|
|
617
|
+
};
|
|
618
|
+
type CreateMissionData = {
|
|
619
|
+
name: string;
|
|
620
|
+
description?: string;
|
|
621
|
+
visibility?: 'Private' | 'Public';
|
|
622
|
+
};
|
|
623
|
+
type Missions4User = {
|
|
624
|
+
id: string;
|
|
625
|
+
name: string;
|
|
626
|
+
slug_path: string;
|
|
627
|
+
description: string;
|
|
628
|
+
visibility: 'Private' | 'Public';
|
|
629
|
+
created_at: string;
|
|
630
|
+
updated_at: string;
|
|
631
|
+
web_url: string;
|
|
632
|
+
};
|
|
633
|
+
type MissionView = {
|
|
634
|
+
id: string;
|
|
635
|
+
name: string;
|
|
636
|
+
description?: string;
|
|
637
|
+
config?: MissionViewConfig;
|
|
638
|
+
created_at?: string;
|
|
639
|
+
updated_at?: string;
|
|
640
|
+
};
|
|
641
|
+
type MissionViewConfig = {
|
|
642
|
+
id: string;
|
|
643
|
+
name: string;
|
|
644
|
+
description?: string;
|
|
645
|
+
columns?: MissionViewColumn[];
|
|
646
|
+
filters?: MissionViewFilter[];
|
|
647
|
+
sort_by?: string;
|
|
648
|
+
sort_order?: 'asc' | 'desc';
|
|
649
|
+
};
|
|
650
|
+
type MissionViewColumn = {
|
|
651
|
+
key: string;
|
|
652
|
+
label: string;
|
|
653
|
+
width?: number;
|
|
654
|
+
visible?: boolean;
|
|
655
|
+
sortable?: boolean;
|
|
656
|
+
};
|
|
657
|
+
type MissionViewFilter = {
|
|
658
|
+
key: string;
|
|
659
|
+
operator?: 'eq' | 'ne' | 'contains' | 'gt' | 'lt' | 'gte' | 'lte';
|
|
660
|
+
value?: any;
|
|
661
|
+
};
|
|
662
|
+
type MissionPostViewReq = {
|
|
663
|
+
view_ids: string[];
|
|
664
|
+
};
|
|
665
|
+
|
|
666
|
+
declare class AiBase extends CNBCore {
|
|
667
|
+
group: string;
|
|
668
|
+
constructor(options: CNBCoreOptions);
|
|
669
|
+
autoPr(repo: string, data: {
|
|
670
|
+
body: string;
|
|
671
|
+
branch?: string;
|
|
672
|
+
title: string;
|
|
673
|
+
}): Promise<Result<any>>;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
type CNBOptions = CNBCoreOptions<{}>;
|
|
677
|
+
declare class CNB extends CNBCore {
|
|
678
|
+
workspace: Workspace;
|
|
679
|
+
knowledgeBase: KnowledgeBase;
|
|
680
|
+
repo: Repo;
|
|
681
|
+
user: User;
|
|
682
|
+
build: Build;
|
|
683
|
+
issue: Issue;
|
|
684
|
+
mission: Mission;
|
|
685
|
+
ai: AiBase;
|
|
686
|
+
constructor(options: CNBOptions);
|
|
687
|
+
init(cnbOptions?: CNBOptions): void;
|
|
688
|
+
setToken(token: string): void;
|
|
689
|
+
setCookie(cookie: string): void;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
declare const config: {
|
|
693
|
+
PORT?: string;
|
|
694
|
+
REDIS_HOST?: string;
|
|
695
|
+
REDIS_PORT?: string;
|
|
696
|
+
REDIS_PASSWORD?: string;
|
|
697
|
+
REDIS_VERSION?: string;
|
|
698
|
+
REDIS_DB?: string;
|
|
699
|
+
REDIS_USER?: string;
|
|
700
|
+
POSTGRES_HOST?: string;
|
|
701
|
+
POSTGRES_PORT?: string;
|
|
702
|
+
POSTGRES_PASSWORD?: string;
|
|
703
|
+
POSTGRES_USER?: string;
|
|
704
|
+
POSTGRES_DB?: string;
|
|
705
|
+
MONGO_URI?: string;
|
|
706
|
+
DATABASE_URL?: string;
|
|
707
|
+
MINIO_ENDPOINT?: string;
|
|
708
|
+
MINIO_BUCKET_NAME?: string;
|
|
709
|
+
MINIO_ACCESS_KEY?: string;
|
|
710
|
+
MINIO_SECRET_KEY?: string;
|
|
711
|
+
MINIO_USE_SSL?: string;
|
|
712
|
+
S3_ACCESS_KEY_ID?: string;
|
|
713
|
+
S3_SECRET_ACCESS_KEY?: string;
|
|
714
|
+
S3_REGION?: string;
|
|
715
|
+
S3_BUCKET_NAME?: string;
|
|
716
|
+
S3_ENDPOINT?: string;
|
|
717
|
+
S3_FORCE_PATH_STYLE?: string;
|
|
718
|
+
KEVISUAL_TOKEN?: string;
|
|
719
|
+
KEVISUAL_API_URL?: string;
|
|
720
|
+
KEVISUAL_NEW_API?: string;
|
|
721
|
+
BAILIAN_API_KEY?: string;
|
|
722
|
+
ZHIPU_API_KEY?: string;
|
|
723
|
+
MINIMAX_API_KEY?: string;
|
|
724
|
+
DOUBAO_API_KEY?: string;
|
|
725
|
+
JIMENG_API_URL?: string;
|
|
726
|
+
JIMENG_API_KEY?: string;
|
|
727
|
+
JIMENG_TIMEOUT?: string;
|
|
728
|
+
OPENCODE_URL?: string;
|
|
729
|
+
OPENCODE_API_KEY?: string;
|
|
730
|
+
FEISHU_NOTIFY_WEBHOOK_URL?: string;
|
|
731
|
+
NOCODB_URL?: string;
|
|
732
|
+
NOCODB_API_KEY?: string;
|
|
733
|
+
MEILISEARCH_URL?: string;
|
|
734
|
+
MEILISEARCH_API_KEY?: string;
|
|
735
|
+
POCKETBASE_URL?: string;
|
|
736
|
+
POCKETBASE_TOKEN?: string;
|
|
737
|
+
CNB_TOKEN?: string;
|
|
738
|
+
CNB_COOKIE?: string;
|
|
739
|
+
KUBECONFIG_DATA?: string;
|
|
740
|
+
};
|
|
741
|
+
declare const cnb: CNB;
|
|
742
|
+
declare const app: QueryRouterServer;
|
|
743
|
+
|
|
744
|
+
export { app, cnb, config };
|