Loading...
Loading...
操作 CNB (cnb.cool) 平台上的 Issue。当用户需要创建、查询、更新 CNB 上的 Issue, 或需要管理 Issue 的标签、处理人、评论时,使用此 skill。 触发词: cnb issue、cnb 问题单、腾讯代码平台 issue、cnb.cool issue、cnb工单
npx skill4agent add hicaosen/skills cnb-issuecnb-client.jsscriptscd <skill-base-directory>/scripts
npm install<skill-base-directory>repo-issue:rrepo-issue:rwexport CNB_TOKEN="your-token-here"scripts/cnb-client.js<skill-base-directory>/scripts/cnb-client.js# 列出仓库的所有 Issue
node <skill-base-directory>/scripts/cnb-client.js list owner/repo
# 带过滤条件查询
node <skill-base-directory>/scripts/cnb-client.js list owner/repo '{"state":"open","labels":"bug"}'
# 获取单个 Issue 详情
node <skill-base-directory>/scripts/cnb-client.js get owner/repo 123# 创建简单 Issue
node <skill-base-directory>/scripts/cnb-client.js create owner/repo '{"title":"Bug: 登录页面无法加载","body":"详细描述问题..."}'
# 创建带标签和处理人的 Issue
node <skill-base-directory>/scripts/cnb-client.js create owner/repo '{
"title": "[Bug] 支付页面超时",
"body": "## 问题描述\n支付页面在高峰期出现超时情况",
"labels": ["bug", "priority-high"],
"assignees": ["username"]
}'# 更新标题和内容
node <skill-base-directory>/scripts/cnb-client.js update owner/repo 123 '{"title":"新标题","body":"新内容"}'
# 关闭 Issue
node <skill-base-directory>/scripts/cnb-client.js update owner/repo 123 '{"state":"closed"}'
# 重新打开 Issue
node <skill-base-directory>/scripts/cnb-client.js update owner/repo 123 '{"state":"open"}'# 添加标签
node <skill-base-directory>/scripts/cnb-client.js add-labels owner/repo 123 '["bug","urgent"]'
# 设置标签(替换现有标签)
node <skill-base-directory>/scripts/cnb-client.js set-labels owner/repo 123 '["enhancement"]'
# 移除单个标签
node <skill-base-directory>/scripts/cnb-client.js remove-label owner/repo 123 wontfix# 添加处理人
node <skill-base-directory>/scripts/cnb-client.js add-assignees owner/repo 123 '["user1","user2"]'
# 移除处理人
node <skill-base-directory>/scripts/cnb-client.js remove-assignees owner/repo 123 '["user1"]'# 添加评论
node <skill-base-directory>/scripts/cnb-client.js add-comment owner/repo 123 "这是评论内容"
# 查看评论列表
node <skill-base-directory>/scripts/cnb-client.js list-comments owner/repo 123# 1. 创建 Issue
ISSUE=$(node <skill-base-directory>/scripts/cnb-client.js create myorg/myproject/myrepo '{
"title": "[Bug] 支付页面超时",
"body": "## 问题描述\n支付页面在高峰期出现超时情况\n\n## 影响范围\n- 移动端用户\n- 高峰期 (18:00-21:00)\n\n## 期望行为\n支付应在 5 秒内完成",
"labels": ["bug", "priority-critical", "payment"],
"assignees": ["backend-team"]
}')
echo "Issue 创建成功: $ISSUE"
# 2. 添加初始评论
node <skill-base-directory>/scripts/cnb-client.js add-comment myorg/myproject/myrepo 123 "已分配给后端团队处理,预计 24 小时内修复。"| 命令 | 说明 |
|---|---|
| 列出 Issues |
| 获取 Issue 详情 |
| 创建 Issue |
| 更新 Issue |
| 添加标签 |
| 设置标签 |
| 移除标签 |
| 添加处理人 |
| 移除处理人 |
| 添加评论 |
| 列出评论 |
| 权限 | 说明 |
|---|---|
| 读取 Issue |
| 读写 Issue |
| 读取评论 |
| 读写评论 |
username/repoorg/project/repocnb-client.js// 使用 skill base directory 下的脚本
const {
listIssues,
getIssue,
createIssue,
updateIssue,
addLabels,
addAssignees,
createComment,
getComments
} = require('<skill-base-directory>/scripts/cnb-client');
// 或者在 async 函数中使用
async function main() {
// 列出 Issues
const issues = await listIssues('owner/repo', { state: 'open' });
// 创建 Issue
const issue = await createIssue('owner/repo', {
title: 'Bug report',
body: 'Description...',
labels: ['bug']
});
// 添加评论
await createComment('owner/repo', issue.number, 'Thanks for reporting!');
}