Yandex Tracker CLI(bash + curl),支持队列、工单、评论、工作日志、附件、YQL。
Yandex Tracker CLI Skill QQ Yan Yandex Tracker на bash bash bash bash bash чисто是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
一个基于纯 Bash + curl 实现的轻量级 Yandex Tracker 命令行工具。直接通过官方 API 调用,自动设置正确的请求头(X-Org-Id),除 curl 和 jq 外不依赖任何外部组件。
mkdir -p ~/bin cp yandex-tracker.sh ~/bin/yandex-tracker chmod +x ~/bin/yandex-tracker
或创建符号链接:
ln -s /path/to/skill/yandex-tracker.sh ~/bin/yandex-tracker
TOKEN 和 ORG_ID — 可通过环境变量或配置文件提供(任选其一即可)。脚本仅在环境变量未定义 TOKEN/ORG_ID 时才读取配置文件。方式 A — 通过环境变量(推荐):
export TOKEN='y0__...' # OAuth token(Tracker UI → Settings → Applications → OAuth) export ORG_ID='1234...' # Org ID(DevTools → Network → 查看任意请求的 X-Org-Id 响应头)
可将上述变量添加至 ~/.bashrc 或 ~/.profile 中永久生效。
方式 B — 通过配置文件:
创建 ~/.yandex-tracker-env 文件(仅当环境变量未定义 TOKEN/ORG_ID 时才会被读取)。格式为 KEY=value 行(以 # 开头的行视为注释并被忽略)。该文件**以纯文本方式读取**(仅解析 TOKEN 和 ORG_ID 字段),**不会执行其中任何代码**:
TOKEN='y0__...' ORG_ID='1234...'
建议优先使用环境变量方式管理凭据。若使用配置文件,请设置权限:chmod 600 ~/.yandex-tracker-env。
jq:sudo apt install jq # Ubuntu/Debian # 或 brew install jq # macOS
| 命令 | 说明 |
|---|---|
queues |
列出所有队列(格式:key) |
queue-get |
获取队列详情(JSON 格式) |
queue-fields |
列出队列所有字段(含本地字段) |
issue-get |
获取指定任务(格式如:BIMLAB-123) |
issue-create |
创建任务。自动添加标签 yandex-tracker-cli。额外字段通过 stdin 以 JSON 提供 |
issue-update |
更新任务。若缺失则自动添加标签 yandex-tracker-cli。额外字段通过 stdin 以 JSON 提供 |
issue-delete |
删除任务 |
issue-comment |
添加评论 |
issue-comment-edit |
编辑评论 |
issue-comment-delete |
删除评论 |
issue-transitions |
列出任务当前可用的状态流转(GET 请求) |
issue-transition |
执行状态流转(POST 请求,调用 V3 接口) |
issue-close |
关闭任务(已弃用,可能返回 405;建议改用 issue-transition 并指定 close 流转) |
issue-worklog |
添加工时记录(duration 示例:PT1H30M) |
issue-attachments |
列出任务的所有附件(JSON 格式) |
attachment-download |
下载附件。若未指定 output,则输出至 stdout |
attachment-upload |
上传文件至任务。支持可选的评论说明 |
issues-search |
通过 YQL 查询任务。查询 JSON 通过 stdin 输入,例如:{"query":"Queue = BIMLAB AND Status = Open","limit":50} |
projects-list |
列出所有项目(JSON 格式) |
project-get |
获取项目详情 |
project-issues |
列出项目下的所有任务 |
sprints-list |
列出所有冲刺(Agile) |
sprint-get |
获取冲刺详情 |
sprint-issues |
列出冲刺中的任务 |
users-list |
列出所有用户(只读字典) |
statuses-list |
列出所有任务状态 |
resolutions-list |
列出所有任务关闭原因(resolution) |
issue-types-list |
列出所有任务类型(如 bug、task、improvement) |
issue-checklist |
列出任务的检查清单项 |
checklist-add |
向检查清单添加新条目 |
checklist-complete |
将检查清单条目标记为已完成 |
checklist-delete |
删除检查清单条目 |
# 列出所有队列
yandex-tracker queues
# 创建带附加字段的任务
echo '{"priority":"critical","description":"详细说明"}' | yandex-tracker issue-create BIMLAB "新任务"
# 添加评论
yandex-tracker issue-comment BIMLAB-266 "正在处理"
# 添加工时记录
yandex-tracker issue-worklog BIMLAB-266 PT2H "调研"
# 获取当前可用的状态流转列表
yandex-tracker issue-transitions BIMLAB-266 | jq .
# 执行状态流转(例如「解决」)
yandex-tracker issue-transition BIMLAB-266 resolve
# 关闭任务(已弃用,建议使用 transition close)
yandex-tracker issue-transition BIMLAB-266 close
# 更新任务(可修改队列、指派人、项目等 — project id 来自 projects-list 输出)
echo '{"queue":"RAZRABOTKA"}' | yandex-tracker issue-update BIMLAB-266 # 示例
echo '{"assignee":"","project":123}' | yandex-tracker issue-update BIMLAB-280
# 使用 YQL 搜索任务
echo '{"query":"Queue = BIMLAB AND Status = Open","limit":20}' | yandex-tracker issues-search | jq .
# 列出所有项目
yandex-tracker projects-list | jq .
# 列出某项目下的任务
yandex-tracker project-issues 104 | jq .
# 附件(Attachments)
# 列出附件
yandex-tracker issue-attachments BIMLAB-266 | jq .
# 下载附件(fileId 来自上一步输出)至指定路径
yandex-tracker attachment-download BIMLAB-266 abc123 /tmp/downloaded.pdf
# 上传文件至任务(附带说明)
yandex-tracker attachment-upload BIMLAB-266 /path/to/file.pdf "内部备忘录"
# 检查清单(Checklist)— API v3(checklistItems)
# 查看任务检查清单(条目 ID 为字符串,例如 "5fde5f0a1aee261d********")
yandex-tracker issue-checklist BIMLAB-279 | jq .
# 添加条目
yandex-tracker checklist-add BIMLAB-279 "准备演示文稿"
# 将条目标记为已完成(item-id 来自 issue-checklist 输出)
yandex-tracker checklist-complete BIMLAB-279 "5fde5f0a1aee261d********"
# 删除条目
yandex-tracker checklist-delete BIMLAB-279 "5fde5f0a1aee261d********"
# 冲刺(Agile)
yandex-tracker sprints-list | jq .
yandex-tracker sprint-issues 42 | jq .
# 字典类接口
yandex-tracker users-list | jq .
yandex-tracker statuses-list | jq .
yandex-tracker resolutions-list | jq .
yandex-tracker issue-types-list | jq .
# 编辑与删除评论
yandex-tracker issue-comment-edit BIMLAB-266 12345 "更新后的正文"
yandex-tracker issue-comment-delete BIMLAB-266 12345
# 状态流转
# 查看可用流转列表
yandex-tracker issue-transitions BIMLAB-266 | jq .
# 执行流转(如「解决」或「关闭」)
yandex-tracker issue-transition BIMLAB-266 resolve
yandex-tracker issue-transition BIMLAB-266 close
yandex-tracker-cli:在创建(issue-create)和更新(issue-update)任务时,脚本会自动添加标签 yandex-tracker-cli(若尚不存在)。该标签便于筛选 CLI 创建/更新的任务。如需移除该标签,请通过 Tracker 界面手动删除,或调用 issue-update 并传入空数组 tags: []。X-Org-ID 字段值。注意此处是 X-Org-ID(ID 全大写)。X-Cloud-Org-ID 请求头。请根据组织类型选择对应请求头。issue-transitions — 向 V2 接口 /v2/issues/{id}/transitions 发送 GET 请求,返回当前可用流转列表。issue-transition — 向 V3 接口 /v3/issues/{id}/transitions/{transition}/_execute 发送 POST 请求执行流转。需携带 X-Org-ID 或 X-Cloud-Org-ID 请求头。issue-close 命令已弃用,在新配置下可能返回 405 错误。请统一使用 issue-transition close 。jq 格式化,便于后续管道处理。attachment-download 和 attachment-upload 命令仅允许访问预设白名单目录内的路径,从而降低 CLI(包括 AI Agent 场景)意外读写任意文件的风险。
YANDEX_TRACKER_ATTACHMENTS_DIR,首次调用 attachment-download 或 attachment-upload 时,脚本将以交互方式提示:是否使用默认目录 ~/Downloads/YandexTrackerCLI,或手动输入自定义路径。用户选择将被持久化保存至 ~/.yandex-tracker-attachments-dir,后续不再重复询问。YANDEX_TRACKER_ATTACHMENTS_DIR — 可选环境变量,用于指定附件操作的基础目录。若已设置,则直接使用该路径(不触发首次交互提示);若未设置且无历史保存路径,则首次运行时触发交互提示;否则(如非交互式执行)将回退至当前工作目录。AI Agent 场景下的安全约束:
attachment-download 且输出路径超出白名单目录;禁止使用敏感路径(如 ~/.ssh、~/.env、~/.yandex-tracker-env、/etc 及其他配置/密钥文件所在位置)。attachment-upload 且上传文件路径超出白名单目录;禁止上传来自上述敏感路径的文件。按不完整名称匹配项目(如为任务分配项目):
当用户请求将任务加入某项目,但仅提供模糊名称(如 “Common”、“项目 Common”、“经理”)时:
yandex-tracker projects-list(或已知 ID 时用 project-get)。name)、项目键(key)或显示名(display,若存在)中包含用户输入关键词的项目(建议忽略大小写)。projects-list 后手动选择。issue-update:API v2 的 PATCH 请求体中,project 字段需传入**数值型项目 ID**:echo '{"project":}' | yandex-tracker issue-update 。该 ID 应取自 projects-list 或 project-get 响应中的 id 字段(v2 中即 shortId / 数值 ID)。skills/yandex-tracker-cli/ ├── yandex-tracker # 可执行脚本 ├── SKILL.md # 本文档 ├── ~/.yandex-tracker-env # (可选,不纳入仓库)存储 TOKEN 和 ORG_ID 的配置文件 └── ~/.yandex-tracker-attachments-dir # (可选)首次交互后保存的附件目录路径
issues_find)MIT
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习