Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions specs/PLAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# YouTrack CLI Plan

## Goal

Build a Rust CLI app that uses the `youtrack-client-api` crate to expose practical YouTrack workflows from the terminal.

The CLI should:

- map cleanly onto the SDK's existing resource modules
- support both human-readable and machine-readable output (table, JSON, YAML)
- work against any YouTrack instance (cloud or self-hosted)
- keep app code isolated from direct SDK details where that improves maintainability

## Dependency Baseline

- repo: `ghostspice/youtrack-client-api`
- branch: `0.1.x`
- crate name: `youtrack-client-api`
- crate version: `0.1.0`
- edition: `2024`

## Current Scope

### Implemented

- Issue management: `issue list`, `issue get`, `issue create`, `issue update`, `issue delete`
- Comment management: `comment list`, `comment add`, `comment update`, `comment delete`
- Attachment management: `attachment list`, `attachment upload`, `attachment delete`
- Table and JSON output formats
- Authentication via environment variables, compile-time embedding, or interactive prompt

### Planned

- YAML output format (`--output yaml`)
- `--verbose` / `--quiet` global flags with tracing
- Config file support (`~/.config/youtrack-cli/config.toml`)
- Locked-build mode via `build.rs` (parity with gitlab-cli)
- `app.rs` refactor: thin `main.rs` + `AppContext` + command dispatch
- Auth validation on token prompt (call `/api/users/me`)
Loading