logo
0
0
WeChat Login

CNB-Skill

Auth cnb Eryajf HitCount Star 数量徽章。 Fork 数量徽章。 Eryajf Blog Eryajf WeChat Eryajf Awesome Stars

🛫 与 CNB 平台交互的通用 Skill

CNB Skill

一个用于 Claude Code 的 Skill,让 AI 助手能够通过自然语言与 CNB(Cloud Native Build,云原生构建)平台交互。

什么是 Skill?

Skill 是 Claude Code 的扩展机制,通过自然语言指导 AI 如何使用特定工具和 API。这个 CNB Skill 让 Claude Code 能够:

  • 🔧 调用 CNB 官方 MCP 服务器进行平台操作
  • 📚 通过 RAG 查询 CNB 文档
  • 🗂️ 管理代码仓库、议题和合并请求
  • 🚀 触发和监控流水线构建
  • 💻 管理远程工作空间

快速开始

1. 前置要求

  • Python 3.6+ (用于 MCP 脚本)
  • CNB 账户和 Access Token
  • Claude Code CLI 或支持 Skill 的 AI 助手

2. 安装 Skill

将此仓库克隆到你的 Claude Code skills 目录:

# 克隆仓库
git clone https://cnb.cool/znb/cnb-skill.git ~/.claude/skills/cnb-skill

# 或通过符号链接
ln -s /path/to/cnb-skill ~/.claude/skills/cnb-skill

3. 配置 CNB Token

创建 .env 文件(推荐):

cd ~/.claude/skills/cnb-skill/scripts
cp .env.example .env
# 编辑 .env 文件,填入你的 CNB_TOKEN

或使用环境变量:

export CNB_TOKEN=your_cnb_access_token

获取 Token: 访问 CNB 平台设置 创建访问令牌。

4. 测试安装

cd scripts
python3 cnb-mcp.py list-tools

如果看到工具列表,说明安装成功!

使用示例

在 Claude Code 中,你可以直接用自然语言与 CNB 交互:

用户: 列出我的所有仓库

Claude: [调用 cnb_list_repositories 工具]
找到 5 个仓库:
1. demo/web-app (main, 2 小时前更新)
2. demo/backend (master, 1 天前更新)
...
用户: 触发 demo-app 主分支的构建

Claude: [调用 cnb_startBuild 工具]
已触发构建 #123
- 仓库: demo/web-app
- 分支: main
- 状态: 运行中
- 日志: https://cnb.cool/...
用户: 如何配置 webhook?

Claude: [调用 cnb_queryKnowledgeBase 工具]
根据 CNB 文档《Webhook 配置》:
1. 进入项目设置 > 集成 > Webhook
2. 点击新增,选择触发事件...

参考: https://docs.cnb.cool/zh/plugin/...

功能特性

仓库管理

  • 列出仓库 (cnb_list_repositories)
  • 获取仓库详情 (cnb_get_repository)
  • 创建仓库 (cnb_create_repository)
  • 管理组织/群组 (cnb_list_groups, cnb_create_group)

议题与合并请求

  • 议题 CRUD 操作 (cnb_list_issues, cnb_create_issue, cnb_update_issue)
  • 议题评论和标签管理
  • 合并请求管理 (cnb_list_pulls, cnb_create_pull, cnb_merge_pull)
  • MR 评论操作

CI/CD 流水线

  • 触发构建 (cnb_startBuild)
  • 查询构建状态 (cnb_getBuildStatus)
  • 获取构建日志 (cnb_getBuildLogs)
  • 停止构建 (cnb_stopBuild)

远程工作空间

  • 列出工作空间 (cnb_list_workspaces)
  • 删除工作空间 (cnb_delete_workspace)

知识库查询

  • 查询 CNB 文档 (cnb_queryKnowledgeBase)
  • 获取知识库信息 (cnb_getKnowledgeBaseInfo)

项目结构

cnb-skill/
├── SKILL.md                # Skill 定义文件(核心)
├── scripts/
│   ├── cnb-mcp.py         # MCP HTTP API 调用脚本
│   ├── .env.example       # 配置示例
│   └── README.md          # 脚本使用说明
└── README.md              # 本文件

工作原理

用户输入 (自然语言)
   ↓
Claude Code 加载 SKILL.md
   ↓
AI 理解意图并选择工具
   ↓
调用 execute_bash 执行 cnb-mcp.py
   ↓
Python 脚本调用 CNB MCP HTTP API
   ↓
返回结果给 AI
   ↓
AI 格式化并展示给用户

核心文件说明

SKILL.md

这是 Skill 的核心定义文件,包含:

  • Skill 元信息(name, description)
  • CNB 平台能力说明
  • 工具列表和参数定义
  • 响应格式模板
  • 错误处理指南
  • 实际使用示例

scripts/cnb-mcp.py

Python 脚本,负责调用 CNB 官方 MCP HTTP API:

  • 支持 .env 文件和环境变量配置
  • 提供 list-toolscall 命令
  • 自动处理 JSON 参数解析
  • 详见 scripts/README.md

进阶使用

自定义工具调用

# 查询知识库
python3 scripts/cnb-mcp.py call cnb_queryKnowledgeBase query="CI/CD配置"

# 获取仓库信息
python3 scripts/cnb-mcp.py call cnb_get_repository repo="demo-app"

# 触发流水线(带变量)
python3 scripts/cnb-mcp.py call cnb_startBuild \
  repo="demo-app" \
  branch="main" \
  variables='{"ENV":"production"}'

在其他项目中使用

这个 Skill 可以集成到任何支持 Claude Code Skill 机制的项目中:

  1. Claude Code CLI: 直接使用,无需额外配置
  2. 自定义 AI 助手: 将 SKILL.md 作为系统提示词
  3. LangChain/LlamaIndex: 作为工具集成

安全注意事项

  • ⚠️ 永远不要提交包含真实 Token 的 .env 文件
  • .env 已在 .gitignore 中,不会被提交
  • ✅ 使用 .env.example 分享配置示例
  • ✅ 定期轮换 Access Token
  • ✅ Token 权限最小化原则

故障排除

"需要 CNB_TOKEN"

  • 检查 .env 文件是否存在且格式正确
  • 或设置环境变量: export CNB_TOKEN=your_token
  • 参考: CNB Access Token 文档

"无法连接到 MCP"

  • 验证网络连接: curl https://mcp.cnb.cool
  • 检查 Token 是否有效
  • 确认 Token 具有所需权限

工具调用返回错误

  • 使用 python3 scripts/cnb-mcp.py list-tools 查看可用工具
  • 检查参数格式是否正确
  • 查看 SKILL.md 中的参数说明

相关资源

贡献

欢迎贡献!你可以:

  • 报告 Bug 或提出建议
  • 改进文档和示例
  • 添加新的工具集成
  • 优化 Skill 定义

许可证

参见 LICENSE 文件。

About

cnb专用skill

Language
Python100%