cnb-skill
CNB 平台操作助手 - 帮助用户管理 CI/CD、代码仓库、流水线和查询文档
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
CNB 平台操作助手 - 帮助用户管理 CI/CD、代码仓库、流水线和查询文档
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | cnb-skill |
| description | CNB 平台操作助手 - 帮助用户管理 CI/CD、代码仓库、流水线和查询文档 |
此技能帮助你协助用户进行 CNB(Cloud Native Build,云原生构建)平台操作。CNB 是一个全面的云原生开发平台,提供 CI/CD、代码托管、制品管理、远程工作空间和 AI 辅助等功能。技能的目标是:
| 项目 | 说明 |
|---|---|
CNB_TOKEN | 必填,Bearer Token,获取方式参考 CNB Access Token 文档。支持两种配置方式: 1. 环境变量: export CNB_TOKEN=your_token2. .env 文件:在项目根目录、当前工作目录或脚本目录创建 .env 文件,内容为 CNB_TOKEN=your_token优先级:环境变量 > .env 文件。建议使用 .env 方式并将其加入 .gitignore,避免泄露凭据。 |
CNB_MCP_URL | 选填,默认为 https://mcp.cnb.cool/mcp,如需连接专用环境可以覆写。同样支持环境变量或 .env 文件配置。 |
| 网络 | 需可访问 CNB MCP Endpoint,如果命令行需要代理,务必配置在环境层。 |
配置示例 (.env 文件):
# CNB 配置
CNB_TOKEN=your_cnb_access_token_here
# CNB_MCP_URL=https://mcp.cnb.cool/mcp # 可选,使用自定义端点时配置
所有 CNB 交互均通过 execute_bash 调用 scripts/cnb-mcp.py 完成。
{
"command": "python3 scripts/cnb-mcp.py list-tools"
}
{
"command": "python3 scripts/cnb-mcp.py call <工具名> key1=value1 key2=value2"
}
注意:脚本会尝试对
key=value的 value 执行json.loads,传递数组/对象时请使用合法 JSON 字面量,例如filters='{"branch":"main"}'。
下表与后续小节一起描述各功能模块、典型工具与参数。
| 模块 | 主要场景 | 对应工具 |
|---|---|---|
| 组织/群组管理 | 枚举组织层级、创建组织 | cnb_list_groups, cnb_list_sub_groups, cnb_get_group, cnb_create_group |
| 仓库管理 | 列表/详情/按组织筛选/创建仓库 | cnb_list_repositories, cnb_list_group_repositories, cnb_get_current_repository, cnb_get_repository, cnb_create_repository |
| 议题管理 | 列表/详情/增删标签/评论 | cnb_list_issues, cnb_get_issue, cnb_create_issue, cnb_update_issue, cnb_list_issue_comments, cnb_create_issue_comment, cnb_update_issue_comment, cnb_list_issue_labels, cnb_add_issue_labels, cnb_set_issue_labels, cnb_clear_issue_labels, cnb_remove_issue_label |
| 合并请求管理 | MR 列表/详情/创建/评论/合并 | cnb_list_pulls, cnb_get_pull, cnb_create_pull, cnb_update_pull, cnb_merge_pull, cnb_list_pull_comments, cnb_create_pull_comment |
| 流水线管理 | 构建触发、状态、日志、终止 | cnb_startBuild, cnb_stopBuild, cnb_getBuildStatus, cnb_getBuildLogs, cnb_getBuildStage, cnb_buildRunnerDownloadLog, cnb_buildLogsDelete |
| 远程工作空间 | 查看/删除云原生开发环境 | cnb_list_workspaces, cnb_delete_workspace |
| 知识库 | 查询官方文档、检索 KB 元信息 | cnb_getKnowledgeBaseInfo, cnb_queryKnowledgeBase |
若需要扩展 AI/制品等其他平台 API,请在获取官方工具后再补充,确保名称与 MCP Server README 保持一致。
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_list_groups | page, page_size | 列出顶层组织。 |
cnb_list_sub_groups | group_id(必填), page, page_size | 列出子组织。 |
cnb_get_group | group_id(必填) | 获取组织详情。 |
cnb_create_group | name, path, parent_id(可选) | 创建组织,注意命名唯一性。 |
回复中需提示权限要求,必要时引用组织路径。
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_list_repositories | page, page_size | 返回所有可见仓库。 |
cnb_list_group_repositories | group_id, page, page_size | 按组织过滤。 |
cnb_get_current_repository | 无 | 获取当前工作区绑定仓库。 |
cnb_get_repository | repo | 返回仓库元数据(默认分支、可见性等)。 |
cnb_create_repository | group_id, name, visibility 等 | 创建仓库,注意最少字段要求。 |
示例
{
"command": "python3 scripts/cnb-mcp.py call cnb_get_repository repo=\"demo-app\""
}
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_list_issues | repo, state, labels, page, page_size | 支持筛选状态/标签。 |
cnb_get_issue | repo, issue_iid | 获取单个议题。 |
cnb_create_issue | repo, title, description, assignee_ids 等 | 创建议题。 |
cnb_update_issue | repo, issue_iid, title/description/state | 更新字段。 |
cnb_list_issue_comments / cnb_create_issue_comment / cnb_update_issue_comment | repo, issue_iid, comment_id | 评论增删改。 |
cnb_list_issue_labels / cnb_add_issue_labels / cnb_set_issue_labels / cnb_clear_issue_labels / cnb_remove_issue_label | repo, issue_iid, labels | 标签管理。 |
示例输出应包含议题链接、状态、负责人,若包含标签操作需说明幂等策略。
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_list_pulls | repo, state, page, page_size | 列出 MR。 |
cnb_get_pull | repo, merge_request_iid | 获取 MR 详情。 |
cnb_create_pull | repo, source_branch, target_branch, title | 创建 MR。 |
cnb_update_pull | repo, merge_request_iid, title/description/state | 更新 MR。 |
cnb_merge_pull | repo, merge_request_iid, merge_commit_message | 执行合并。 |
cnb_list_pull_comments / cnb_create_pull_comment | repo, merge_request_iid, comment_id | 评论列表/新增。 |
执行合并前需再次确认目标分支及合并策略,避免误操作。
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_startBuild | repo, branch, variables | 触发构建。 |
cnb_stopBuild | build_id | 停止构建。 |
cnb_getBuildStatus | build_id | 查询状态。 |
cnb_getBuildLogs | repo, branch, page, page_size | 查询构建列表(根据 README 描述返回构建信息)。 |
cnb_getBuildStage | build_id, stage | 查询阶段详情。 |
cnb_buildRunnerDownloadLog | build_id, runner_id | 下载 Runner 日志。 |
cnb_buildLogsDelete | build_id | 删除日志,此操作不可恢复,需明确用户授权。 |
输出中需注明日志链接有效期或可下载方式。
| 工具 | 参数 | 说明 |
|---|---|---|
cnb_list_workspaces | status, page, page_size | 列出云原生开发环境。 |
cnb_delete_workspace | workspace_id | 删除工作空间,提示删除不可恢复。 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 中文或英文自然语言问题,最多 512 字符。 |
filters | object | 否 | 结构 {"product":"cicd"} 用于限定文档域。 |
示例
{
"command": "python3 scripts/cnb-mcp.py call cnb_queryKnowledgeBase query=\"如何配置 webhook\""
}
如需先了解知识库结构,可使用 cnb_getKnowledgeBaseInfo 返回可查询的数据源。
当前官方 MCP 工具列表暂未包含制品或 AI 能力。若需此类场景,可在平台推出后更新技能文档,或在回复中说明“该能力暂未由 MCP 工具提供”。
| 工具 | 参数 | 说明 |
|---|---|---|
list_repositories | remote_url(string, 可选,支持模糊匹配) | 返回当前账号可见仓库列表。 |
get_repository | repo(string, 必填) | 返回仓库元数据(默认分支、更新人等)。 |
list_branches | repo, page, page_size | 默认 page=1, page_size=20。 |
list_commits | repo, branch, limit | limit 默认 10。 |
示例
{
"command": "python3 scripts/cnb-mcp.py call get_repository repo=\"demo-app\""
}
| 工具 | 参数 | 说明 |
|---|---|---|
trigger_pipeline | repo(string, 必填), branch(string, 默认 main), variables(object, 可选) | |
get_build_status | build_id(string, 必填) | |
list_builds | repo, branch, limit(默认 5) | |
get_build_logs | build_id, step(可选) |
示例
{
"command": "python3 scripts/cnb-mcp.py call trigger_pipeline repo=\"demo-app\" branch=\"main\""
}
| 工具 | 参数 | 说明 |
|---|---|---|
list_artifacts | project(string, 必填), type(enum: image/pkg/file), limit | |
get_artifact | artifact_id(string, 必填) | |
promote_artifact | artifact_id, target_env |
输出时应提供版本、SHA、可下载链接(如 API 返回)。
| 工具 | 参数 | 说明 |
|---|---|---|
list_workspaces | status(enum: running/stopped/all) | |
create_workspace | template(string, 必填), resources(object,如 {\"cpu\":4,\"memory\":8}) | |
stop_workspace | workspace_id |
需要提醒用户:创建后可能需要 1-2 分钟准备,返回的 ssh_entry 或 web_ide_url 要在最终回复中明确展示。
| 工具 | 参数 | 说明 |
|---|---|---|
invoke_ai_assistant | prompt(string, 必填), context(object,可选,例如最近提交) | |
summarize_diff | repo, commit_range |
结果通常包含自然语言建议或结构化摘要,回答时需注明“该建议由 CNB AI 辅助提供”。
处理用户请求时,遵循以下步骤:
CNB_TOKEN 已可用、必要参数齐全。如缺失,向用户追问。execute_bash 工具调用 Python 脚本,并记录请求参数(可在笔记中保存,回复时酌情引用但不泄露 Token)。CNB_TOKEN、内部 ID(除非用户需求)或非公开 URL。limit 条记录,如用户需要更多,说明如何调整 page/page_size。repo 或 workspace_id。### 仓库概览
| 序号 | 仓库 | 默认分支 | 最后更新 |
| --- | --- | --- | --- |
| 1 | owner/demo-app | main | 2 小时前 |
> 共返回 X 个,更多请使用 page=2 继续查询。
### 制品版本
| 版本 | 类型 | SHA | 发布环境 | 操作 |
| --- | --- | --- | --- | --- |
| v1.2.3 | image | sha256:xxxx | staging | [下载](链接)
### 构建 #123
- 状态:运行中
- 仓库/分支:demo-app@main
- 触发人:alice
- 开始时间:2026-02-01 10:25 CST
- 日志:<链接>
根据 CNB 文档《Webhook 配置》:
1. 在项目设置 > 集成 > Webhook 中点击新增。
2. 选择触发事件并填写回调地址……
参考:https://docs.cnb.cool/zh/.../webhook.html
### 工作空间 wsp-12345
- 状态:Running(4C/8G)
- 创建时间:2026-02-02 09:12 CST
- 入口:SSH ssh user@host / Web IDE https://...
- 提示:长时间不用请停止以节约配额。
### AI 建议(CNB AI)
1. 将 CI 构建缓存设置为 S3 以提升速度……
典型错误码及处理建议:
| 错误 | 场景 | 建议回复 |
|---|---|---|
| 401/403 | Token 缺失或权限不足 | “认证失败,请参照 Access Token 指南重新配置 CNB_TOKEN。” |
| 404 | 仓库/流水线不存在 | “未找到 demo-app,请确认名称或所在空间。” |
| 422 | 参数缺失/格式错误 | 指出缺少字段并提示正确格式。 |
| 429 | 触发频率过高 | 建议稍后重试或联系管理员提高限额。 |
| 5xx | 服务端异常 | 告知用户稍后重试并记录 request_id(若响应提供)。 |
统一错误回复结构:
调用 <工具名> 失败:原因描述。
排查建议:...
request_id:xxxx(若有)
query_knowledge 检索 “CNB webhook 配置”。get_repository 获取 repo hooks 设置(假设 MCP 工具支持)。trigger_pipeline 触发指定分支。get_build_status 直至状态结束,必要时获取 get_build_logs。list_artifacts 查最新构建产物。promote_artifact 推广,并在回复中提示验证及回滚路径。list_workspaces 查看资源占用。create_workspace。summarize_diff 传入 commit range。execute_bash 工具执行 Python 脚本来访问 CNB MCP