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.
Install command
npx @skill-hub/cli install openclaw-skills-yandex-tracker-cli
Repository
Skill path: skills/bkamuz/yandex-tracker-cli
CLI for Yandex Tracker (bash + curl). Queues, issues, comments, worklogs, attachments, YQL.
Open repositoryBest 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
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"
}
]
}
```