@kevisual/cnb 0.0.40 → 0.0.43
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 +5 -5
- package/agent/modules/cnb-manager.ts +20 -2
- package/agent/npc.ts +94 -0
- package/agent/routes/build/docker.ts +66 -0
- package/agent/routes/build/index.ts +1 -0
- package/agent/routes/chat/chat.ts +41 -0
- package/agent/routes/index.ts +2 -0
- package/agent/routes/issues/comments.ts +177 -0
- package/agent/routes/issues/index.ts +2 -1
- package/agent/routes/issues/list.ts +35 -2
- package/agent/routes/opencode/index.ts +12 -0
- package/dist/cli.js +30601 -21685
- package/dist/keep.js +34 -16
- package/dist/opencode.js +56568 -47662
- package/dist/routes.d.ts +106 -5
- package/dist/routes.js +52900 -43995
- package/package.json +16 -11
- package/src/index.ts +14 -1
- package/src/issue/index.ts +72 -5
- package/src/issue/npc/build-env.ts +217 -0
- package/src/issue/npc/env.ts +194 -0
- package/src/issue/npc/pr-env.ts +95 -0
- package/src/issue/npc/repo-env.ts +56 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useKey } from "@kevisual/context";
|
|
2
|
+
|
|
3
|
+
// CNB_PULL_REQUEST false 对于由 pull_request、pull_request.update、pull_request.target 触发的构建,值为 true,否则为 false
|
|
4
|
+
// CNB_PULL_REQUEST_LIKE false 对于由 合并类事件 触发的构建,值为 true,否则为 false
|
|
5
|
+
// CNB_PULL_REQUEST_PROPOSER 对于由 合并类事件 触发的构建,值为提出 PR 者名称,否则为空字符串
|
|
6
|
+
// CNB_PULL_REQUEST_TITLE 对于由 合并类事件 触发的构建,值为提 PR 时候填写的标题,否则为空字符串
|
|
7
|
+
// CNB_PULL_REQUEST_BRANCH 对于由 合并类事件 触发的构建,值为发起 PR 的源分支名称,否则为空字符串
|
|
8
|
+
// CNB_PULL_REQUEST_SHA 对于由 合并类事件 触发的构建,值为当前 PR 源分支最新的提交 sha,否则为空字符串
|
|
9
|
+
// CNB_PULL_REQUEST_TARGET_SHA 对于由 合并类事件 触发的构建,值为当前 PR 目标分支最新的提交 sha,否则为空字符串
|
|
10
|
+
// CNB_PULL_REQUEST_MERGE_SHA 对于由 pull_request.merged 触发的构建,值为合并后的 sha;对于 pull_request 等触发的构建,值为预合并后的 sha,否则为空字符串
|
|
11
|
+
// CNB_PULL_REQUEST_SLUG 对于由 合并类事件 触发的构建,值为源仓库的仓库 slug,如 group_slug/repo_name,否则为空字符串
|
|
12
|
+
// CNB_PULL_REQUEST_ACTION 对于由 合并类事件 触发的构建,可能的值有:created(新建PR)、code_update(源分支push)、status_update(评审通过或CI状态变更),否则为空字符串
|
|
13
|
+
// CNB_PULL_REQUEST_ID 对于由 合并类事件 触发的构建,值为当前或者关联 PR 的全局唯一 id,否则为空字符串
|
|
14
|
+
export const usePullRequestEnv = () => {
|
|
15
|
+
const pullRequest = useKey("CNB_PULL_REQUEST");
|
|
16
|
+
const pullRequestLike = useKey("CNB_PULL_REQUEST_LIKE");
|
|
17
|
+
const pullRequestProposer = useKey("CNB_PULL_REQUEST_PROPOSER");
|
|
18
|
+
const pullRequestTitle = useKey("CNB_PULL_REQUEST_TITLE");
|
|
19
|
+
const pullRequestBranch = useKey("CNB_PULL_REQUEST_BRANCH");
|
|
20
|
+
const pullRequestSha = useKey("CNB_PULL_REQUEST_SHA");
|
|
21
|
+
const pullRequestTargetSha = useKey("CNB_PULL_REQUEST_TARGET_SHA");
|
|
22
|
+
const pullRequestMergeSha = useKey("CNB_PULL_REQUEST_MERGE_SHA");
|
|
23
|
+
const pullRequestSlug = useKey("CNB_PULL_REQUEST_SLUG");
|
|
24
|
+
const pullRequestAction = useKey("CNB_PULL_REQUEST_ACTION");
|
|
25
|
+
const pullRequestId = useKey("CNB_PULL_REQUEST_ID");
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
/**
|
|
29
|
+
* @key CNB_PULL_REQUEST
|
|
30
|
+
* @description:对于由 pull_request、pull_request.update、pull_request.target 触发的构建,值为 true,否则为 false
|
|
31
|
+
*/
|
|
32
|
+
pullRequest,
|
|
33
|
+
pullRequestLabel: "对于由 pull_request、pull_request.update、pull_request.target 触发的构建,值为 true,否则为 false",
|
|
34
|
+
/**
|
|
35
|
+
* @key CNB_PULL_REQUEST_LIKE
|
|
36
|
+
* @description:对于由 合并类事件 触发的构建,值为 true,否则为 false
|
|
37
|
+
*/
|
|
38
|
+
pullRequestLike,
|
|
39
|
+
pullRequestLikeLabel: "对于由 合并类事件 触发的构建,值为 true,否则为 false",
|
|
40
|
+
/**
|
|
41
|
+
* @key CNB_PULL_REQUEST_PROPOSER
|
|
42
|
+
* @description:对于由 合并类事件 触发的构建,值为提出 PR 者名称,否则为空字符串
|
|
43
|
+
*/
|
|
44
|
+
pullRequestProposer,
|
|
45
|
+
pullRequestProposerLabel: "对于由 合并类事件 触发的构建,值为提出 PR 者名称,否则为空字符串",
|
|
46
|
+
/**
|
|
47
|
+
* @key CNB_PULL_REQUEST_TITLE
|
|
48
|
+
* @description:对于由 合并类事件 触发的构建,值为提 PR 时候填写的标题,否则为空字符串
|
|
49
|
+
*/
|
|
50
|
+
pullRequestTitle,
|
|
51
|
+
pullRequestTitleLabel: "对于由 合并类事件 触发的构建,值为提 PR 时候填写的标题,否则为空字符串",
|
|
52
|
+
/**
|
|
53
|
+
* @key CNB_PULL_REQUEST_BRANCH
|
|
54
|
+
* @description:对于由 合并类事件 触发的构建,值为发起 PR 的源分支名称,否则为空字符串
|
|
55
|
+
*/
|
|
56
|
+
pullRequestBranch,
|
|
57
|
+
pullRequestBranchLabel: "对于由 合并类事件 触发的构建,值为发起 PR 的源分支名称,否则为空字符串",
|
|
58
|
+
/**
|
|
59
|
+
* @key CNB_PULL_REQUEST_SHA
|
|
60
|
+
* @description:对于由 合并类事件 触发的构建,值为当前 PR 源分支最新的提交 sha,否则为空字符串
|
|
61
|
+
*/
|
|
62
|
+
pullRequestSha,
|
|
63
|
+
pullRequestShaLabel: "对于由 合并类事件 触发的构建,值为当前 PR 源分支最新的提交 sha,否则为空字符串",
|
|
64
|
+
/**
|
|
65
|
+
* @key CNB_PULL_REQUEST_TARGET_SHA
|
|
66
|
+
* @description:对于由 合并类事件 触发的构建,值为当前 PR 目标分支最新的提交 sha,否则为空字符串
|
|
67
|
+
*/
|
|
68
|
+
pullRequestTargetSha,
|
|
69
|
+
pullRequestTargetShaLabel: "对于由 合并类事件 触发的构建,值为当前 PR 目标分支最新的提交 sha,否则为空字符串",
|
|
70
|
+
/**
|
|
71
|
+
* @key CNB_PULL_REQUEST_MERGE_SHA
|
|
72
|
+
* @description:对于由 pull_request.merged 触发的构建,值为合并后的 sha;对于 pull_request 等触发的构建,值为预合并后的 sha,否则为空字符串
|
|
73
|
+
*/
|
|
74
|
+
pullRequestMergeSha,
|
|
75
|
+
pullRequestMergeShaLabel: "对于由 pull_request.merged 触发的构建,值为合并后的 sha;对于 pull_request 等触发的构建,值为预合并后的 sha,否则为空字符串",
|
|
76
|
+
/**
|
|
77
|
+
* @key CNB_PULL_REQUEST_SLUG
|
|
78
|
+
* @description:对于由 合并类事件 触发的构建,值为源仓库的仓库 slug,如 group_slug/repo_name,否则为空字符串
|
|
79
|
+
*/
|
|
80
|
+
pullRequestSlug,
|
|
81
|
+
pullRequestSlugLabel: "对于由 合并类事件 触发的构建,值为源仓库的仓库 slug,如 group_slug/repo_name,否则为空字符串",
|
|
82
|
+
/**
|
|
83
|
+
* @key CNB_PULL_REQUEST_ACTION
|
|
84
|
+
* @description:对于由 合并类事件 触发的构建,可能的值有:created(新建PR)、code_update(源分支push)、status_update(评审通过或CI状态变更),否则为空字符串
|
|
85
|
+
*/
|
|
86
|
+
pullRequestAction,
|
|
87
|
+
pullRequestActionLabel: "对于由 合并类事件 触发的构建,可能的值有:created(新建PR)、code_update(源分支push)、status_update(评审通过或CI状态变更),否则为空字符串",
|
|
88
|
+
/**
|
|
89
|
+
* @key CNB_PULL_REQUEST_ID
|
|
90
|
+
* @description:对于由 合并类事件 触发的构建,值为当前或者关联 PR 的全局唯一 id,否则为空字符串
|
|
91
|
+
*/
|
|
92
|
+
pullRequestId,
|
|
93
|
+
pullRequestIdLabel: "对于由 合并类事件 触发的构建,值为当前或者关联 PR 的全局唯一 id,否则为空字符串"
|
|
94
|
+
};
|
|
95
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { useKey } from "@kevisual/context";
|
|
2
|
+
|
|
3
|
+
// CNB_REPO_SLUG kevision/dev-cnb 目标仓库路径,格式为 group_slug / repo_name,group_slug / sub_gourp_slug /.../repo_name
|
|
4
|
+
// CNB_REPO_SLUG_LOWERCASE kevision/dev-cnb 目标仓库路径小写格式
|
|
5
|
+
// CNB_REPO_NAME dev-cnb 目标仓库名称
|
|
6
|
+
// CNB_REPO_NAME_LOWERCASE dev-cnb 目标仓库名称小写格式
|
|
7
|
+
// CNB_REPO_ID 2026263219584110592 目标仓库的 id
|
|
8
|
+
// CNB_REPO_URL_HTTPS 目标仓库 https 地址
|
|
9
|
+
export const useRepoInfoEnv = () => {
|
|
10
|
+
const repoSlug = useKey("CNB_REPO_SLUG");
|
|
11
|
+
const repoSlugLowercase = useKey("CNB_REPO_SLUG_LOWERCASE");
|
|
12
|
+
const repoName = useKey("CNB_REPO_NAME");
|
|
13
|
+
const repoNameLowercase = useKey("CNB_REPO_NAME_LOWERCASE");
|
|
14
|
+
const repoId = useKey("CNB_REPO_ID");
|
|
15
|
+
const repoUrlHttps = useKey("CNB_REPO_URL_HTTPS");
|
|
16
|
+
|
|
17
|
+
return {
|
|
18
|
+
/**
|
|
19
|
+
* @key CNB_REPO_SLUG
|
|
20
|
+
* @description:目标仓库路径,格式为 group_slug/repo_name,group_slug/sub_group_slug/.../repo_name
|
|
21
|
+
*/
|
|
22
|
+
repoSlug,
|
|
23
|
+
repoSlugLabel: "目标仓库路径,格式为 group_slug/repo_name,group_slug/sub_group_slug/.../repo_name",
|
|
24
|
+
/**
|
|
25
|
+
* @key CNB_REPO_SLUG_LOWERCASE
|
|
26
|
+
* @description:目标仓库路径小写格式
|
|
27
|
+
*/
|
|
28
|
+
repoSlugLowercase,
|
|
29
|
+
repoSlugLowercaseLabel: "目标仓库路径小写格式",
|
|
30
|
+
/**
|
|
31
|
+
* @key CNB_REPO_NAME
|
|
32
|
+
* @description:目标仓库名称
|
|
33
|
+
*/
|
|
34
|
+
repoName,
|
|
35
|
+
repoNameLabel: "目标仓库名称",
|
|
36
|
+
/**
|
|
37
|
+
* @key CNB_REPO_NAME_LOWERCASE
|
|
38
|
+
* @description:目标仓库名称小写格式
|
|
39
|
+
*/
|
|
40
|
+
repoNameLowercase,
|
|
41
|
+
repoNameLowercaseLabel: "目标仓库名称小写格式",
|
|
42
|
+
/**
|
|
43
|
+
* @key CNB_REPO_ID
|
|
44
|
+
* @description:目标仓库的 id
|
|
45
|
+
*/
|
|
46
|
+
repoId,
|
|
47
|
+
repoIdLabel: "目标仓库的 id",
|
|
48
|
+
/**
|
|
49
|
+
* @key CNB_REPO_URL_HTTPS
|
|
50
|
+
* @description:目标仓库 https 地址
|
|
51
|
+
*/
|
|
52
|
+
repoUrlHttps,
|
|
53
|
+
repoUrlHttpsLabel: "目标仓库 https 地址"
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|