360 Secure SkillHub
360 安全技能中心

YouTrack Issue Tracker

通过命令行工具 ytctl 操作 YouTrack:列出项目与问题、创建/更新问题、添加评论、按查询语法搜索、批量更新/评论/指派及生成项目与用户报表。凭据存于本地配置文件或环境变量,输出支持表格与 JSON。

iahmadzain
iahmadzain
热度 71.39
最近更新 2026-05-11 15:50:57
分类:协作依赖:代码执行 / 读写文件 / 第三方 API应用场景:任务管理 / 工作流 / 报告撰写 / 自动化脚本 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add youtrack
Metadata
name
youtrack
description
Manage YouTrack issues, projects, and workflows via CLI. Use when creating, updating, searching, or commenting on YouTrack issues, listing projects, checking issue states, or automating issue workflows.
metadata
{"clawdbot":{"emoji":"🎫","requires":{"bins":["jq","curl"]}}}

YouTrack CLI

Use ytctl (in scripts/) for YouTrack issue tracking.

Setup

Credentials stored in ~/.config/youtrack/config.json:

{
  "url": "https://your-instance.youtrack.cloud",
  "token": "perm:xxx"
}

Or set env vars: YOUTRACK_URL, YOUTRACK_TOKEN

Generate token: YouTrack → Profile → Account Security → New Token

Commands

# List projects
ytctl projects

# List issues (with optional filters)
ytctl issues                           # all issues
ytctl issues SP                        # issues in project SP
ytctl issues SP --query "state: Open"  # filtered
ytctl issues --max 50                  # limit results

# Get issue details
ytctl issue SP-123

# Create issue
ytctl create SP "Bug: Login fails"
ytctl create SP "Feature request" "Detailed description here"

# Update issue
ytctl update SP-123 state "In Progress"
ytctl update SP-123 assignee john.doe
ytctl update SP-123 priority Critical

# Add comment
ytctl comment SP-123 "Investigating this now"

# Search with YouTrack query syntax
ytctl search "project: SP state: Open assignee: me"
ytctl search "created: today"
ytctl search "#unresolved sort by: priority"

# List workflow states for project
ytctl states SP

# List users
ytctl users
ytctl users --query "john"

Query Syntax

YouTrack query examples:

  • state: Open — by state
  • assignee: me — assigned to current user
  • created: today — created today
  • updated: {last week} — updated in last week
  • #unresolved — all unresolved
  • has: attachments — with attachments
  • sort by: priority desc — sorted

Combine: project: SP state: Open assignee: me sort by: updated

Output

Default: table format. Add --json for raw JSON output:

ytctl issues SP --json
ytctl issue SP-123  # always JSON for single issue

Bulk Operations

# Update all matching issues (with dry-run preview)
ytctl bulk-update "project: SP state: Open" state "In Progress" --dry-run
ytctl bulk-update "project: SP state: Open" state "In Progress"

# Comment on all matching issues
ytctl bulk-comment "project: SP state: Open" "Batch update notice"

# Assign all matching issues
ytctl bulk-assign "project: SP #unresolved" john.doe --dry-run

Reports

# Project summary (default 7 days)
ytctl report SP
ytctl report SP --days 14

# User activity report
ytctl report-user zain
ytctl report-user zain --days 30

# State distribution with bar chart
ytctl report-states SP

Notes

  • Project can be shortName (SP) or full name
  • Fields: state, summary, description, assignee, priority
  • Use ytctl states PROJECT to see valid state names
  • Bulk operations support --dry-run to preview before executing