How to authenticate against TechTeamer’s YouTrack and programmatically list the NÚSZ tickets flagged Ready for release for an upcoming nusz release. Read-only, source-verified on 2026-06-15.

For Agents

  • Tracker = YouTrack, base URL https://youtrack.techteamer.com, REST API at /api/issues.
  • Auth = Bearer token from file ~/.config/facekom/youtrack.token (chmod 600). Never pass the token on argv; read the file into a variable.
  • “Ready for release” is a TAG with the exact string Ready for release (capital R, lowercase “for release”). Search syntax: tag: {Ready for release}.
  • Release-scope query (verified): project: CRNUSZ, BUGNUSZ, SLANUSZ, ASSNUSZ tag: {Ready for release}.
  • GET / read-only only. Do not mutate tickets.

Tracker & API

  • Base URL: https://youtrack.techteamer.com
  • REST issues endpoint: https://youtrack.techteamer.com/api/issues
  • MCP server: A YouTrack MCP server is also configured in ~/.claude.json at https://youtrack.techteamer.com/mcp — scoped to the claude_orchestrator project directory (not this facekom repo dir).

Authentication

Never put the token on the command line

The token must be read from the file into a variable so it never appears in argv / process listings / shell history.

  • Token file: ~/.config/facekom/youtrack.token (mode 600; the file is present — do not record the secret value).
  • Header: Authorization: Bearer <token>
  • The /fk-ticket tooling (below) reads the same file.

The /fk-ticket Claude command

A reusable extractor already wraps this access:

  • Command definition: /Users/levander/coding/facekom/.claude/commands/fk-ticket.md
  • Python extractor: /Users/levander/coding/facekom/.claude/scripts/fkticket/client.py defines the BASE URL and the Bearer auth (reading ~/.config/facekom/youtrack.token).

Use /fk-ticket for the maintained, structured extraction path; use the raw curl below for ad-hoc scope queries.

”Ready for release” is a tag

The release-readiness signal is a tag, not a state or custom field:

  • Stored tag string is exactly Ready for release (capital R, lowercase for release).
  • YouTrack search references it as tag: {Ready for release} (braces required because of the spaces).

Do not confuse the release-ish tags

Other tags exist — e.g. Upcoming Release. These are distinct from Ready for release. Match the exact tag string.

The tag is tracker-wide: tag: {Ready for release} alone matched 57 issues across many client projects (2026-06-15). The project: filter is what scopes it to NÚSZ.

The four NÚSZ projects

Short nameProject
CRNUSZNÚSZ Business Requests
BUGNUSZNÚSZ Support Issues
SLANUSZSLA NÚSZ
ASSNUSZAssist NÚSZ

(See also the ticket-prefix table in Ticket Prefix Convention.)

Release-scope query

YouTrack search query string:

project: CRNUSZ, BUGNUSZ, SLANUSZ, ASSNUSZ tag: {Ready for release}

Verified result (2026-06-15)

This query returned 3 tickets: CRNUSZ-102, ASSNUSZ-58, SLANUSZ-28. BUGNUSZ currently has 0.

Read-only curl

Token is kept off the command line by reading the file into a variable (single line so it copy-pastes cleanly):

TOKEN=$(cat ~/.config/facekom/youtrack.token); curl -s -G 'https://youtrack.techteamer.com/api/issues' --data-urlencode 'query=project: CRNUSZ, BUGNUSZ, SLANUSZ, ASSNUSZ tag: {Ready for release}' --data-urlencode 'fields=idReadable,summary,project(shortName),customFields(projectCustomField(field(name)),value(name)),tags(name)' --data-urlencode '$top=200' -H "Authorization: Bearer $TOKEN" -H 'Accept: application/json'
  • -G + --data-urlencode URL-encodes the query, fields, and $top params safely (the query contains spaces, commas, braces).
  • The fields selector pulls idReadable, summary, project short name, custom fields (field name + value name), and tag names.

Verified example ticket

CRNUSZ-102 (one of the three in scope on 2026-06-15):

FieldValue
ProjectCRNUSZ (NÚSZ Business Requests)
SummaryNÚSZ - Videóchat oldal aktualizálása a honlapon
TypeCR
StatePending
TagsReady for release
Blocker (custom field)Release needed
CR Pipeline (custom field)Ready for Deployment
PMCsordás Sándor
AssigneeFerenc Jurkiewicz

This confirms a ready-for-release NÚSZ ticket can still be in State: Pending — the tag (plus the Blocker = Release needed / CR Pipeline = Ready for Deployment custom fields) is the readiness signal, not the State.