Install
openclaw skills install @thcjp/jiraopenclaw skills install @thcjp/jira核心功能: 本技能提供自动化配置和灵活的参数设置、与用户管理、化配置和灵活的参数设置等能力。
通过项目管理工具集成操作工作项的全生命周期,从史诗拆分到冲刺执行,覆盖创建、搜索、状态转换与看板管理.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 项目管理工具处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 项目管理工具覆盖创建搜索转换 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
| 执行日志与审计追踪 | 不支持 | 支持 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
create_issue 创建史诗:type=Epic,含 summary、descriptionlink_issues 将故事关联到史诗:link type=Epic-Storyupdate_issue 更新史诗状态与字段create_issue 创建故事:type=Story,含 summary、description、priority、assigneeget_issue 读取故事详情,含评论、附件、子任务create_issue 创建缺陷:type=Bug,含 priority、environment、steps to reproducelink_issues 关联缺陷到故事或史诗:link type=Blocks/Is Blocked Bycreate_issue 创建子任务:type=Subtask,parent=父故事keycreate_sprint 创建冲刺:name、startDate、endDate、goaladd_to_sprint 将工作项加入冲刺get_sprint_issues 获取冲刺内所有工作项,maxResults: 50 默认返回前50条get_board_issues 获取看板工作项,按状态列分组move_issue_in_board 调整工作项在看板中的顺序search_issues 使用 JQL 查询:jql="project = PROJ AND status = Open ORDER BY priority DESC"=、!=、>、<、IN、NOT IN、AND、ORassignee = currentUser()、sprint in openSprints()maxResults: 50 控制返回数量,大结果集需分页link_issues 建立关联:type=Blocks、Is Blocked By、Relates To、Duplicate、Epic-Storytransition_issue 转换工作项状态:issue_key + transition_idget_user 查询用户信息:username、displayName、emailget_project 查询项目信息:key、name、lead、issue typesget_all_projects 列出所有可访问项目完成响应以Markdown格式返回,包含任务状态(成功/失败)、解析摘要和具体输出数据。失败时返回错误码和错误信息,便于定位问题。- 验证返回数据的完整性和格式正确性
详细的输入输出格式请参考下方章节说明。
get_project 确认目标项目 key 与可用 issue typecreate_issue 创建工作项,填 summary、type、prioritylink_issues 建立史诗-故事-子任务层级与依赖关系create_sprint + add_to_sprint 规划冲刺search_issues 配合 JQL 跟踪进度transition_issue 推进工作流状态// 创建史诗
{
"fields": {
"project": {"key": "PROJ"},
"summary": "用户认证模块",
"issuetype": {"name": "Epic"},
"priority": {"name": "High"}
}
}
// 返回: {"key": "PROJ-100"}
# ...
// 创建故事并关联史诗
{
"fields": {
"project": {"key": "PROJ"},
"summary": "实现JWT登录接口",
"issuetype": {"name": "Story"},
"priority": {"name": "Medium"},
"customfield_10001": "PROJ-100" // Epic Link
}
}
// 返回: {"key": "PROJ-101"}
输入: "查找 PROJ 项目中所有未关闭的高优先级缺陷"
JQL: project = PROJ AND issuetype = Bug AND priority in (Highest, High) AND status != Closed ORDER BY created DESC
maxResults: 50
输出: 匹配的缺陷列表,含 key、summary、status、assignee
// 创建冲刺
{
"name": "Sprint 2026-W30",
"startDate": "2026-07-21",
"endDate": "2026-08-04",
"goal": "完成用户认证与权限管理"
}
// 返回: {"id": 42, "state": "Future"}
# ...
// 将故事加入冲刺
add_to_sprint(sprintId=42, issues=["PROJ-101", "PROJ-102", "PROJ-103"])
// 转换 PROJ-101 从 Open 到 In Progress
transition_issue("PROJ-101", "11") // 11 = In Progress 的 transition_id
// 返回: {"status": "In Progress", "assignee": "张三"}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| API token 无效(401 Unauthorized) | token 过期或权限不足 | 重新生成 API token,确认用户对目标项目有读写权限 |
| Issue key 不存在(404 Not Found) | key 拼写错误或已删除 | 用 search_issues 验证 key 是否存在,检查拼写 |
| 工作流转换被拒(过渡非法) | 当前状态不允许直接转到目标状态 | 查询工作流定义,确认合法转换路径,如 Open 不能直接到 Done |
| 自定义字段 customfield ID 错误 | 不同实例字段 ID 不同 | 用 get_issue 读取已有工作项,反查 Epic Link 等字段的 customfield ID |
| 冲刺已关闭无法添加工作项 | 冲刺状态为 Closed | 创建新冲刺或激活已关闭冲刺(需管理员权限) |
| JQL 语法错误(400 Bad Request) | 操作符或函数拼写错误 | 检查 JQL 语法,确认字段名与操作符合法,用 IN 替代多个 OR |
| 超出 maxResults 限制 | 默认50条不够 | 分页查询,用 startAt 参数偏移,或缩小 JQL 范围 |
A: 斐波那契数列避免虚假精度。3 与 4 的差异难以区分,但 3 与 5 的差异明确。这迫使团队做粗粒度估算,避免陷入精确错误的陷阱.
maxResults: 50 不够时如何获取全部结果?A: 用分页:领先次 startAt=0, maxResults=50,第二次 startAt=50, maxResults=50,依此类推。或缩小 JQL 范围,按时间或状态分段查询.
A: 用 get_issue 读取工作项,响应中的 transitions 字段列出所有可用转换及其 ID。不同项目、不同状态的 transition_id 不同,不能硬编码.
A: 自定义字段 ID 在创建实例时自动生成,不同实例的 Epic Link 可能是 customfield_10001 或 customfield_10014。用 get_issue 读取含史诗关联的工作项,反查实际字段 ID.
link_issues 的 Blocks 与 Is Blocked By 有何区别?A: 方向相反。A Blocks B 表示 A 阻塞 B(B 等 A 完成);A Is Blocked By B 表示 A 被 B 阻塞(A 等 B 完成)。建立关联时需明确方向,否则依赖图会反.
A: create_sprint 时指定 startDate 与 endDate,可设为14天或7天。建议团队统一周期,避免不同冲刺长度影响速率(burndown)对比.
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API Token 泄露 | 高 | 使用 HTTPS 协议进行 API 通信,限制 API Token 的访问权限 | 定期检查 API Token 访问日志,确保没有未授权访问 |
| 数据泄露 | 高 | 对敏感数据进行加密存储和传输 | 定期进行安全审计,确保敏感数据加密措施有效 |
| 未授权访问 | 中 | 实施严格的用户权限管理,限制用户对敏感数据的访问 | 定期审查用户权限,确保权限分配合理 |
| SQL 注入攻击 | 高 | 对输入数据进行验证和清理,使用参数化查询 | 定期进行安全扫描,检测 SQL 注入漏洞 |
| 恶意软件攻击 | 高 | 使用防病毒软件,定期更新系统 | 定期进行安全扫描,检测恶意软件 |
| 提升效率指标 | 量化分析 | 说明 |
|---|---|---|
| 工作项创建时间 | 减少 20% | 通过自动化脚本简化工作项创建流程 |
| 搜索效率 | 提升 30% | 通过优化 JQL 搜索语句和索引策略 |
| 状态转换效率 | 提升 25% | 通过自动化状态转换脚本减少人工操作 |
| 用户管理效率 | 提升 15% | 通过自动化用户角色分配和权限管理 |
| 差异化对比指标 | 对比项 | 说明 |
|---|---|---|
| 功能丰富度 | Jira | Jira 提供丰富的项目管理功能,包括史诗、故事、缺陷、冲刺、看板等 |
| 用户体验 | Jira | Jira 提供直观易用的界面,支持多种定制化选项 |
| 集成能力 | Jira | Jira 支持与其他工具的集成,如 Confluence、Bitbucket 等 |
| 定制化程度 | Jira | Jira 支持高度定制化,包括工作流、字段、视图等 |
| 社区支持 | Jira | Jira 拥有庞大的社区支持,提供丰富的插件和优选实践 |
| 成本 | Jira | Jira 提供多种定价计划,包括免费版和付费版 |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 项目管理工具 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 通过工具操作史诗、故事、缺陷、冲刺与看板,覆盖创建搜索转换全流程。通过项目管理工 | 通用场景 | 通用场景 |
通过项目管理工具集成操作工作项全生命周期:史诗、故事、
针对项目管理工具使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |