Kanboard 技能
概述
Kanboard 通过 HTTP POST 使用 JSON-RPC 2.0 协议。所有调用均指向单一端点。
认证模式
| 模式 | 用户 | 密码 |
|---|
| 应用 API | jsonrpc | $KANBOARDAPITOKEN |
| 用户 API |
$KANBOARD
USER | $KANBOARDPASS |
应用 API 跳过权限检查且无会话,适用于自动化操作。
用户 API 遵循项目权限,执行我的…相关操作时必须使用。
核心辅助函数
始终使用此 Shell 函数调用 API:
bash
kb() {
local method=$1
local params=${2:-{}}
local user=${KANBOARD_USER:-jsonrpc}
local pass=${KANBOARDPASS:-$KANBOARDAPI_TOKEN}
curl -s -X POST \
-u $user:$pass \
-H Content-Type: application/json \
-d {\jsonrpc\:\2.0\,\method\:\$method\,\id\:1,\params\:$params} \
${KANBOARD_URL}/jsonrpc.php | jq .
}
检查每个响应中的错误:
bash
始终验证结果不为 null/false
result=$(kb getMe | jq .result)
if [ $result = null ] || [ $result = false ]; then
echo 错误:$(kb getMe | jq -r .error.message // 未知错误)
fi
项目
bash
列出所有项目
kb getAllProjects
按 ID 获取单个项目
kb getProjectById {project_id: 1}
按名称获取项目
kb getProjectByName {name: 我的项目}
创建项目
kb createProject {name: 新项目, description: 可选描述}
更新项目
kb updateProject {id: 1, name: 已重命名, description: 已更新}
删除项目(不可逆)
kb removeProject {project_id: 1}
启用/禁用项目
kb enableProject {project_id: 1}
kb disableProject {project_id: 1}
获取项目活动动态
kb getProjectActivity {project_id: 1}
看板与列
bash
获取项目的完整看板(列+任务)
kb getBoard {project_id: 1}
列出所有列
kb getColumns {project_id: 1}
获取单列
kb getColumn {column_id: 5}
创建列
kb addColumn {project
id: 1, title: 审核中, tasklimit: 3}
更新列
kb updateColumn {column
id: 5, title: 审核, tasklimit: 5}
删除列
kb removeColumn {column_id: 5}
更改列位置
kb changeColumnPosition {project
id: 1, columnid: 5, position: 2}
任务
bash
创建任务(最少需要:标题 + project_id)
kb createTask {
title: 修复登录错误,
project_id: 1,
column_id: 2,
swimlane_id: 1,
color_id: red,
priority: 2,
due_date: 2025-12-31,
description: 此处填写详细描述,
owner_id: 3,
tags: [bug, urgent]
}
按 ID 获取任务
kb getTask {task_id: 42}
按引用获取任务(外部引用)
kb getTaskByReference {project_id: 1, reference: EXT-123}
列出项目中的所有任务(status: 1=开启, 2=关闭)
kb getAllTasks {project
id: 1, statusid: 1}
使用高级查询搜索任务
kb searchTasks {project_id: 1, query: assignee:me status:open}
更新任务
kb updateTask {
id: 42,
title: 修复登录错误(已更新),
column_id: 3,
color_id: green,
priority: 1,
due_date: 2025-11-30
}
将任务移动到另一列/泳道/位置
kb moveTaskToColumn {
project_id: 1,
task_id: 42,
column_id: 3,
position: 1,
swimlane_id: 1
}
将任务移动到另一个项目
kb moveTaskToProject {
task_id: 42,
project_id: 2,
swimlane_id: 1,
column_id: 1,
category_id: 0
}
复制任务到另一个项目
kb duplicateTaskToProject {
task_id: 42,
project_id: 2
}
关闭/开启任务
kb closeTask {task_id: 42}
kb openTask {task_id: 42}
删除任务(不可逆)
kb removeTask {task_id: 42}
获取任务颜色列表
kb getTaskColors
任务颜色 ID
yellow, blue, green, purple, red, orange, grey, brown, deep
orange, darkgrey, pink, teal, cyan, lime, light_green, amber
子任务
bash
列出任务的子任务
kb getAllSubtasks {task_id: 42}
创建子任务
kb createSubtask {
task_id: 42,
title: 编写单元测试,
user_id: 3,
time_estimated: 4
}
更新子任务(status: 0=待办, 1=进行中, 2=已完成)
kb updateSubtask {
id: 10,
task_id: 42,
status: 1,
time_spent: 2
}
删除子任务
kb removeSubtask {subtask_id: 10}
评论
bash
列出任务的评论
kb getAllComments {task_id: 42}
创建评论
kb createComment {
task_id: 42,
user_id: 1,
content: 这是一条
Markdown 格式的评论。
}
更新评论
kb updateComment {id: 7, content: 已更新的评论内容。}
删除评论
kb removeComment {comment_id: 7}
泳道
bash
列出项目的泳道
kb getSwimlanes {project_id: 1}
仅获取活跃泳道
kb getActiveSwimlanes {project_id: 1}
创建泳道
kb addSwimlane {project_id: 1, name: Alpha 团队}
更新泳道
kb updateSwimlane {swimlane_id: 3, name: Beta 团队}
删除泳道
kb removeSwimlane {project
id: 1, swimlaneid: 3}
更改泳道位置
kb changeSwimlanePosition {project
id: 1, swimlaneid: 3, position: 1}
分类
bash
列出项目的分类
kb getAllCategories {project_id: 1}
创建分类
kb createCategory {project_id: 1, name: 后端}
更新分类
kb updateCategory {id: 5, name: 后端与 API}
删除分类
kb removeCategory {category_id: 5}
用户
bash
列出所有用户(仅限应用 API)
kb getAllUsers
按 ID 获取用户
kb getUserById {user_id: 3}
按用户名获取用户
kb getUserByName {username: alice}
创建用户
kb createUser {
username: bob,
password: S3cur3P@ss,
name: Bob Smith,
email: bob@example.com