🤖 基于 CNB 平台的智能代码助手 Bot,支持通过评论触发多种 AI 能力。
| 功能 | 触发方式 | 说明 |
|---|---|---|
| 🔍 代码评审 | @codebuddy 评审一下 | 对 PR 变更代码进行评审,支持行级评论 |
| 💬 问题解答 | @codebuddy 这个函数是做什么的? | 回答关于代码的问题 |
| 🔧 代码修改 | @codebuddy 修改这个函数,添加错误处理 | 根据要求修改代码 |
| ✨ 代码生成 | @codebuddy 帮我写一个用户认证模块 | 生成新的代码 |
| 📖 代码解释 | @codebuddy 解释一下这段代码的逻辑 | 详细解释代码含义 |
在 Issue 或 Pull Request 中发表评论,使用以下格式:
@codebuddy <你的请求>
@codebuddy 请帮我评审一下这个 PR 的代码变更
@codebuddy 为什么这里要用 useMemo 而不是 useState?
@codebuddy 请把这个函数改成异步的,并添加错误处理
@codebuddy 帮我实现一个发送邮件的工具函数
@codebuddy 解释一下这个正则表达式的含义
Bot 运行时依赖以下 CNB 环境变量:
| 变量名 | 说明 | 必需 |
|---|---|---|
CNB_COMMENT_BODY | 评论内容 | ✅ |
CNB_REPO_SLUG | 仓库路径 (如 owner/repo) | ✅ |
CNB_TOKEN_FOR_CODEBUDDY | CodeBuddy Token (用于 API 调用) | ✅ |
CNB_EVENT | 事件类型 (issue.comment / pull_request.comment) | ✅ |
CNB_ISSUE_IID | Issue IID | 📋 Issue 评论时必需 |
CNB_PULL_REQUEST_IID | PR IID | 📋 PR 评论时必需 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
CNB_API_ENDPOINT | CNB API 端点 | https://api.cnb.cool |
PLUGIN_DEBUG | 开启调试模式 (true/false) | false |
PLUGIN_MAX_COMMENTS | PR Review 最大评论数 | 10 |
src/ ├── index.ts # 主入口 ├── types.ts # 类型定义 ├── api/ # CNB OpenAPI 客户端 │ ├── cnb.ts # API 客户端 (评论、PR Review) │ └── index.ts # 模块导出 ├── intent/ # 意图识别 │ ├── recognizer.ts # 关键词识别 │ └── llm-recognizer.ts # LLM 识别 ├── handlers/ # 意图处理器 │ └── index.ts # 处理器注册和分发 ├── codebuddy/ # CodeBuddy CLI 执行器 │ └── executor.ts # CLI 执行 ├── review/ # 代码评审模块 │ ├── git.ts # Git 操作 │ ├── reviewer.ts # 评审执行 │ ├── pr-comment.ts # PR 评论服务 │ └── types.ts # 评审类型 └── utils/ # 工具函数 ├── config.ts # 配置管理 ├── env.ts # 环境变量 └── logger.ts # 日志系统
创建 codebuddy-bot.config.json:
{
"logging": {
"level": "info",
"format": "default"
},
"intentRecognition": {
"confidenceThreshold": 0.7,
"forceLLM": false
},
"codebuddy": {
"timeout": 300000
}
}