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%