Back to skills
SkillHub ClubShip Full StackFull Stack

yandex-tracker-cli

CLI for Yandex Tracker (bash + curl). Queues, issues, comments, worklogs, attachments, YQL.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,112
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B70.7

Install command

npx @skill-hub/cli install openclaw-skills-yandex-tracker-cli

Repository

openclaw/skills

Skill path: skills/bkamuz/yandex-tracker-cli

CLI for Yandex Tracker (bash + curl). Queues, issues, comments, worklogs, attachments, YQL.

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install yandex-tracker-cli into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding yandex-tracker-cli to shared team environments
  • Use yandex-tracker-cli for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: yandex-tracker-cli
description: CLI for Yandex Tracker (bash + curl). Queues, issues, comments, worklogs, attachments, YQL.
homepage: https://github.com/bkamuz/yandex-tracker-cli
metadata:
  clawdbot:
    emoji: "πŸ“‹"
    requires:
      env: ["TOKEN", "ORG_ID"]
      bins: ["curl", "jq"]
    primaryEnv: "TOKEN"
    files: ["yandex-tracker.sh"]
  openclaw:
    requires:
      env: ["TOKEN", "ORG_ID"]
      bins: ["curl", "jq"]
    primaryEnv: "TOKEN"
---

# Yandex Tracker CLI Skill

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ CLI для Yandex Tracker Π½Π° чистом bash + curl. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· API с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ (`X-Org-Id`). НС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй ΠΊΡ€ΠΎΠΌΠ΅ `curl` ΠΈ `jq`.

## Установка

1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ скрипт Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² PATH:
```bash
mkdir -p ~/bin
cp yandex-tracker.sh ~/bin/yandex-tracker
chmod +x ~/bin/yandex-tracker
```

Или создайтС симлинк:
```bash
ln -s /path/to/skill/yandex-tracker.sh ~/bin/yandex-tracker
```

2. **ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ credentials**: Π½ΡƒΠΆΠ½Ρ‹ TOKEN ΠΈ ORG_ID β€” Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ способа). Π‘ΠΊΡ€ΠΈΠΏΡ‚ обращаСтся ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли TOKEN/ORG_ID Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

**Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ A β€” Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния (рСкомСндуСтся):**
```bash
export TOKEN='y0__...'      # OAuth Ρ‚ΠΎΠΊΠ΅Π½ (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), Π±Π΅Π· выполнСния ΠΊΠΎΠ΄Π°:
```bash
TOKEN='y0__...'
ORG_ID='1234...'
```
ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» β€” установитС ΠΏΡ€Π°Π²Π° `chmod 600 ~/.yandex-tracker-env`.

3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ `jq` установлСн:
```bash
sudo apt install jq   # Ubuntu/Debian
# ΠΈΠ»ΠΈ
brew install jq       # macOS
```

## ИспользованиС

### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

| Команда | ОписаниС |
|---------|----------|
| `queues` | Бписок всСх ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: `key<TAB>name`) |
| `queue-get <key>` | Π”Π΅Ρ‚Π°Π»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (JSON) |
| `queue-fields <key>` | ВсС поля ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅) |
| `issue-get <issue-id>` | ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: `BIMLAB-123`) |
| `issue-create <queue> <summary>` | **Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ. АвтоматичСски добавляСт Ρ‚Π΅Π³ `yandex-tracker-cli`. Π”ΠΎΠΏ. поля Ρ‡Π΅Ρ€Π΅Π· stdin (JSON)** |
| `issue-update <issue-id>` | **ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ. АвтоматичСски добавляСт Ρ‚Π΅Π³ `yandex-tracker-cli` Ссли отсутствуСт. Π”ΠΎΠΏ. поля Ρ‡Π΅Ρ€Π΅Π· stdin (JSON)** |
| `issue-delete <issue-id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ |
| `issue-comment <issue-id> <text>` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issue-comment-edit <issue-id> <comment-id> <new-text>` | Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issue-comment-delete <issue-id> <comment-id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issue-transitions <issue-id>` | Бписок доступных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² статсусы (GET) |
| `issue-transition <issue-id> <transition-id>` | Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ статуса (POST, V3 endpoint) |
| `issue-close <issue-id> <resolution>` | Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ (устарСл, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ; Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `issue-transition` с ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ `close`) |
| `issue-worklog <issue-id> <duration> [comment]` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ worklog (duration: `PT1H30M`) |
| `issue-attachments <issue-id>` | Бписок Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ (JSON) |
| `attachment-download <issue-id> <fileId> [output]` | Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ». Если output Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ β€” stdout |
| `attachment-upload <issue-id> <filepath> [comment]` | Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Π·Π°Π΄Π°Ρ‡Ρƒ. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issues-search` | Поиск Π·Π°Π΄Π°Ρ‡ Ρ‡Π΅Ρ€Π΅Π· YQL. Запрос JSON Ρ‡Π΅Ρ€Π΅Π· stdin, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: `{"query":"Queue = BIMLAB AND Status = Open","limit":50}` |
| `projects-list` | Бписок всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² (JSON) |
| `project-get <project-id>` | Π”Π΅Ρ‚Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° |
| `project-issues <project-id>` | Бписок Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° |
| `sprints-list` | Бписок спринтов (Agile) |
| `sprint-get <sprint-id>` | Π”Π΅Ρ‚Π°Π»ΠΈ спринта |
| `sprint-issues <sprint-id>` | Π—Π°Π΄Π°Ρ‡ΠΈ Π² спринтС |
| `users-list` | Бписок всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (справочник) |
| `statuses-list` | Бписок всСх статусов Π·Π°Π΄Π°Ρ‡ |
| `resolutions-list` | Бписок Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для закрытия Π·Π°Π΄Π°Ρ‡ |
| `issue-types-list` | Бписок Ρ‚ΠΈΠΏΠΎΠ² Π·Π°Π΄Π°Ρ‡ (bug, task, improvement) |
| `issue-checklist <issue-id>` | Бписок ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² чСклиста Π·Π°Π΄Π°Ρ‡ΠΈ |
| `checklist-add <issue-id> <text>` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Π² чСклист |
| `checklist-complete <issue-id> <item-id>` | ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ |
| `checklist-delete <issue-id> <item-id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ чСклиста |

### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

```bash
# Бписок ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ
yandex-tracker queues

# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями
echo '{"priority":"critical","description":"ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ"}' | yandex-tracker issue-create BIMLAB "Новая Π·Π°Π΄Π°Ρ‡Π°"

# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ
yandex-tracker issue-comment BIMLAB-266 "Π Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ этим"

# Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ spent time
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

# ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ (ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” id ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· projects-list)
echo '{"queue":"RAZRABOTKA"}' | yandex-tracker issue-update BIMLAB-266 # ΠΏΡ€ΠΈΠΌΠ΅Ρ€
echo '{"assignee":"<uid>","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: []`.
- **Org-ID (ЯндСкс 360):** НайдитС Π² DevTools Tracker β†’ Network β†’ любой запрос β†’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `X-Org-ID`. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `X-Org-ID` (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ "ID").
- **Cloud Org-ID (Yandex Cloud):** Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ `X-Cloud-Org-ID`. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.
- **ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ статусов (transitions):**
  - `issue-transitions <issue-id>` β€” GET-запрос ΠΊ V2 endpoint `/v2/issues/{id}/transitions` (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список доступных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ²).
  - `issue-transition <issue-id> <transition-id>` β€” POST-запрос ΠΊ V3 endpoint `/v3/issues/{id}/transitions/{transition}/_execute` для выполнСния ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° `X-Org-ID` ΠΈΠ»ΠΈ `X-Cloud-Org-ID`.
- **Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡:** Команда `issue-close` устарСла ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ 405 Π² Π½ΠΎΠ²Ρ‹Ρ… конфигурациях. Для закрытия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `issue-transition <id> close`.
- Π’ΠΎΠΊΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Tracker UI: Settings β†’ Applications β†’ OAuth β†’ Generate new token.
- ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выводят JSON Ρ‡Π΅Ρ€Π΅Π· `jq` для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

## Security (attachments)

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ `attachment-download` ΠΈ `attachment-upload` Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. Π­Ρ‚ΠΎ сниТаСт риск чтСния ΠΈΠ»ΠΈ записи ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ использовании CLI (Π² Ρ‚.Ρ‡. Π°Π³Π΅Π½Ρ‚ΠΎΠΌ).

- **ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ запуск:** ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ `attachment-download` ΠΈΠ»ΠΈ `attachment-upload` (Ссли Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ `YANDEX_TRACKER_ATTACHMENTS_DIR`) скрипт Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ спросит: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ `~/Downloads/YandexTrackerCLI` ΠΈΠ»ΠΈ ввСсти свой ΠΏΡƒΡ‚ΡŒ. Π’Ρ‹Π±ΠΎΡ€ сохраняСтся Π² `~/.yandex-tracker-attachments-dir` ΠΈ большС Π½Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ.
- **YANDEX_TRACKER_ATTACHMENTS_DIR** β€” ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная окруТСния: базовая дирСктория для Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Если Π·Π°Π΄Π°Π½Π° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ½Π° (запрос ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС Π½Π΅ показываСтся). Если Π½Π΅ Π·Π°Π΄Π°Π½Π° ΠΈ Π½Π΅Ρ‚ сохранённого Π²Ρ‹Π±ΠΎΡ€Π° β€” ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС запрос, ΠΈΠ½Π°Ρ‡Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тСкущая дирСктория (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ запускС).

**Когда Π½Π°Π²Ρ‹ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ AI-Π°Π³Π΅Π½Ρ‚ΠΎΠΌ:**

- НС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ `attachment-download` с ΠΏΡƒΡ‚Ρ‘ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π²Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ; Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ `~/.ssh`, `~/.env`, `~/.yandex-tracker-env`, `/etc`, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΈ сСкрСты).
- НС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ `attachment-upload` с Ρ„Π°ΠΉΠ»ΠΎΠΌ Π²Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ; Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… располоТСний (Ρ‚ΠΎΡ‚ ΠΆΠ΅ список).
- Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просит ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ β€” ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

**ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ (Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚):**

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просит Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«CommonΒ», Β«ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CommonΒ», Β«ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Β»):

1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²: `yandex-tracker projects-list` (ΠΈΠ»ΠΈ `project-get` ΠΏΠΎ извСстному id).
2. Найти совпадСния ΠΏΠΎ словам: ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ (`name`), ΠΊΠ»ΡŽΡ‡Π΅ (`key`) ΠΈΠ»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ (`display`, Ссли Π΅ΡΡ‚ΡŒ) Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ слова (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра).
3. Если Π½Π°ΠΉΠ΄Π΅Π½ Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ: Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«<Π½Π°Π·Π²Π°Π½ΠΈΠ΅>Β» (id: <id>)?Β» ΠΈ ΠΏΡ€ΠΈ согласии Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.
4. Если Π½Π°ΠΉΠ΄Π΅Π½ΠΎ нСсколько β€” ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ id) ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ: «Какой ΠΈΠ· этих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² имССтся Π² Π²ΠΈΠ΄Ρƒ?Β»
5. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ β€” ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± этом ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ `projects-list` ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
6. Для обновлСния Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `issue-update`: Π² API v2 Π² Ρ‚Π΅Π»Π΅ PATCH пСрСдаётся **числовой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°** Π² ΠΏΠΎΠ»Π΅ `project`: `echo '{"project":<id>}' | yandex-tracker issue-update <issue-id>`. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `id` ΠΈΠ· ΠΎΡ‚Π²Π΅Ρ‚Π° списка/Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π² v2 это shortId/числовой id).

## Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

```
skills/yandex-tracker-cli/
β”œβ”€β”€ yandex-tracker        # Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ скрипт
β”œβ”€β”€ SKILL.md              # Π­Ρ‚Π° докумСнтация
β”œβ”€β”€ ~/.yandex-tracker-env # (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Π½Π΅ Π² Ρ€Π΅ΠΏΠΎ) ΠšΠΎΠ½Ρ„ΠΈΠ³ с TOKEN ΠΈ ORG_ID
└── ~/.yandex-tracker-attachments-dir # (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) Бохранённая ΠΏΠ°ΠΏΠΊΠ° для Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запроса
```

## Limitations

- НСт ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ (Ρ‚. ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 100 элСмСнтов)
- НСт ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ поиска (`issues_find` ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ)
- ΠŸΡ€ΠΎΡΡ‚Π°Ρ валидация Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

## License

MIT


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### README.md

```markdown
# Yandex Tracker CLI

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для [ЯндСкс Π’Ρ€Π΅ΠΊΠ΅Ρ€](https://tracker.yandex.ru/) β€” Ρ€Π°Π±ΠΎΡ‚Π° с очСрСдями, Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, коммСнтариями, спринтами ΠΈ Ρ‡Π΅ΠΊ-листами Ρ‡Π΅Ρ€Π΅Π· API.

## ВрСбования

- **bash** (с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ `BASH_REMATCH`)
- **curl**
- **jq**

## Установка

0. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ:
   ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ openclaw Π±ΠΎΡ‚Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ yandex-tracker-cli скилл
   ΠΈΠ»ΠΈ Π΄Π°Ρ‚ΡŒ ссылку https://clawhub.ai/bkamuz/yandex-tracker-cli

ΠΈΠ»ΠΈ

1. Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ скрипт ΠΈ сдСлайтС Π΅Π³ΠΎ исполняСмым:

   ```bash
   chmod +x yandex-tracker.sh
   ```

2. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ создайтС симлинк для удобства:

   ```bash
   ln -s yandex-tracker.sh yandex-tracker
   ```

## Настройка

НуТны **OAuth-Ρ‚ΠΎΠΊΠ΅Π½** ΠΈ **Org ID** (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ).

- **TOKEN** β€” ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Π’Ρ€Π΅ΠΊΠ΅Ρ€Π΅: Настройки β†’ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β†’ OAuth.
- **ORG_ID** β€” ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² DevTools Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Network) Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ `X-Org-Id`.

Π—Π°Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ двумя способами (ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния):

1. **ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния:**

   ```bash
   export TOKEN="y0_..."
   export ORG_ID="1234567"
   ```

2. **Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ** `~/.yandex-tracker-env` (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли `TOKEN` ΠΈ `ORG_ID` Π½Π΅ Π·Π°Π΄Π°Π½Ρ‹ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ):

   ```
   TOKEN=y0_...
   ORG_ID=1234567
   ```

   Из Ρ„Π°ΠΉΠ»Π° Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки `TOKEN=...` ΠΈ `ORG_ID=...` (Π±Π΅Π· выполнСния ΠΊΠΎΠ΄Π°).

## ИспользованиС

```text
./yandex-tracker.sh <ΠΊΠΎΠΌΠ°Π½Π΄Π°> [Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹]
```

### ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ

| Команда | ОписаниС |
|--------|----------|
| `queues` | Бписок ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ |
| `queue-get <key>` | Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ |
| `queue-fields <key>` | Поля ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ |

### Π—Π°Π΄Π°Ρ‡ΠΈ (issues)

| Команда | ОписаниС |
|--------|----------|
| `issue-get <id>` | ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ |
| `issue-create <queue> <summary>` | Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ (Π΄ΠΎΠΏ. JSON Ρ‡Π΅Ρ€Π΅Π· stdin) |
| `issue-update <id>` | ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ (JSON Ρ‡Π΅Ρ€Π΅Π· stdin) |
| `issue-delete <id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ |
| `issue-transitions <id>` | ДоступныС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΏΠΎ статусам |
| `issue-close <id> <resolution>` | Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ с Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ |
| `issue-worklog <id> <duration> [comment]` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ |
| `issues-search` | Поиск ΠΏΠΎ YQL (JSON с `query`, `limit` Ρ‡Π΅Ρ€Π΅Π· stdin) |

### ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

| Команда | ОписаниС |
|--------|----------|
| `issue-comment <id> <text>` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issue-comment-edit <id> <comment-id> <new-text>` | Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |
| `issue-comment-delete <id> <comment-id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ |

### ВлоТСния

| Команда | ОписаниС |
|--------|----------|
| `issue-attachments <id>` | Бписок Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ |
| `attachment-download <issue-id> <fileId> [output]` | Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ |
| `attachment-upload <issue-id> <filepath> [comment]` | Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Π·Π°Π΄Π°Ρ‡Ρƒ |

ΠŸΡƒΡ‚ΠΈ для скачивания ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ (ΠΈΠ»ΠΈ `YANDEX_TRACKER_ATTACHMENTS_DIR`); ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. SKILL.md (Ρ€Π°Π·Π΄Π΅Π» Security) ΠΈ ΠΎΠΏΡ†ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

### ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ спринты

| Команда | ОписаниС |
|--------|----------|
| `projects-list` | Бписок ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² |
| `project-get <id>` | Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ |
| `project-issues <id>` | Π—Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° |
| `sprints-list` | Бписок спринтов |
| `sprint-get <id>` | Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ спринтС |
| `sprint-issues <id>` | Π—Π°Π΄Π°Ρ‡ΠΈ спринта |

### Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ

| Команда | ОписаниС |
|--------|----------|
| `users-list` | ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ |
| `statuses-list` | Бтатусы |
| `resolutions-list` | Π Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΠΈ |
| `issue-types-list` | Π’ΠΈΠΏΡ‹ Π·Π°Π΄Π°Ρ‡ |

### Π§Π΅ΠΊ-лист (API v3)

| Команда | ОписаниС |
|--------|----------|
| `issue-checklist <id>` | Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‡Π΅ΠΊ-листа |
| `checklist-add <issue-id> <text>` | Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ |
| `checklist-complete <issue-id> <item-id>` | ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ |
| `checklist-delete <issue-id> <item-id>` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ |

## ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Бписок ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ:

```bash
./yandex-tracker.sh queues
```

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ:

```bash
./yandex-tracker.sh issue-create MYQUEUE "ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС"
```

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями (JSON Ρ‡Π΅Ρ€Π΅Π· stdin):

```bash
echo '{"description":"ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС"}' | ./yandex-tracker.sh issue-create MYQUEUE "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ"
```

Поиск Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ YQL:

```bash
echo '{"query":"Queue = MYQUEUE AND Status = Open","limit":10}' | ./yandex-tracker.sh issues-search
```

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:

```bash
./yandex-tracker.sh issue-comment MYQUEUE-123 "ВСкст коммСнтария"
```

## ЛицСнзия

Π‘ΠΌ. Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

```

### _meta.json

```json
{
  "owner": "bkamuz",
  "slug": "yandex-tracker-cli",
  "displayName": "Yandex Tracker CLI",
  "latest": {
    "version": "1.2.8",
    "publishedAt": 1772812710674,
    "commit": "https://github.com/openclaw/skills/commit/7149efceadbccf115d445dce82cfd65268b25681"
  },
  "history": [
    {
      "version": "1.2.7",
      "publishedAt": 1771609720792,
      "commit": "https://github.com/openclaw/skills/commit/39499d2b0316fe69e3ef1d8fbdcf35a4a1708919"
    },
    {
      "version": "1.2.5",
      "publishedAt": 1771409163775,
      "commit": "https://github.com/openclaw/skills/commit/e54c4f0553d26f5ea910e370869a108ea95d4a95"
    },
    {
      "version": "1.2.4",
      "publishedAt": 1771400458877,
      "commit": "https://github.com/openclaw/skills/commit/b5fc049b20525ab609285e9c3fcb72458bf3e2ae"
    },
    {
      "version": "1.1.6",
      "publishedAt": 1771327901879,
      "commit": "https://github.com/openclaw/skills/commit/9d5779418e05659ad647a17316a7be15584ec9e8"
    },
    {
      "version": "1.1.5",
      "publishedAt": 1771325953464,
      "commit": "https://github.com/openclaw/skills/commit/9faaec7e5307380b5c32dbe439dc7116fcdb4243"
    },
    {
      "version": "1.1.4",
      "publishedAt": 1771325512966,
      "commit": "https://github.com/openclaw/skills/commit/09b9c580bc01489c82b3c017be0753dc83d4402b"
    },
    {
      "version": "1.0.12",
      "publishedAt": 1771323112301,
      "commit": "https://github.com/openclaw/skills/commit/19fd6a72d457e9daf7ae5c18116342b6da534dc5"
    },
    {
      "version": "1.0.8",
      "publishedAt": 1771322205989,
      "commit": "https://github.com/openclaw/skills/commit/d238ba21d3bc825e767c83c865060b7118fdca70"
    },
    {
      "version": "1.0.7",
      "publishedAt": 1771322080120,
      "commit": "https://github.com/openclaw/skills/commit/7ed1146f7795ee47a52e2e42e4bbe5e350c5841b"
    },
    {
      "version": "1.0.3",
      "publishedAt": 1771320488173,
      "commit": "https://github.com/openclaw/skills/commit/282ee294b87e8e13603cf0667890f075663645c7"
    },
    {
      "version": "1.0.0",
      "publishedAt": 1771318256328,
      "commit": "https://github.com/openclaw/skills/commit/c1c5a91a2128c0938f1e99af5eae5228fd3ed919"
    }
  ]
}

```