feat: Milestone 1 scaffold - CLI skeleton and working config #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/milestone-1-scaffold"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
First milestone of the Rust port of
github.com/dukechill/youtrack-cli. Lands the project skeleton, the fullclapcommand tree, and a workingconfigsubcommand. Every other subcommand is wired to clap but currently returns a milestone-tagged "not yet implemented" error so the CLI exits cleanly.Cargo.toml: single-binary crate, edition 2024, MIT licensed. Deps: clap (derive), tokio, reqwest (rustls), serde + serde_yml + serde_json, secrecy, thiserror, anyhow, tracing, comfy-table, time, url. Dev deps: wiremock, tempfile.src/cli.rs: full clap definition coveringlist,board list,sprint list/current,issue {comment,inspect,sprint show/set,set-state,set-estimation,daily-sync},config {set,view,show},work {add,check}. Global flags--config,--color.src/config.rs: drop-in compatible with the Go~/.youtrack-cli.yaml. Keysurl,token,default_sprint,board_name. Masking matches Go ([first4]...[last4]whenlen > 8). File written 0600 on Unix. Tests for round-trip and masking.src/commands/config/{set,view,show}.rs: fully working.src/commands/**: stubs returningbail!("'<cmd>' is not yet implemented in the Rust port (milestone N)").PLAN.md: locked-in decisions (single binary, Forgejo hosting, MIT,--color auto,--jsonon every read command). Will be removed once milestone 1 is reviewed.justfile:build/test/lint/fmt/check/dev/create-releasemodeled on the siblingicanhazrustrecipe.LICENSE,README.md,.gitignore.Test plan
cargo build --release(clean).cargo test --all-targets- 4 unit tests pass (mask_short_token_returns_raw,mask_long_token_keeps_4_each_side,round_trip_yaml,set_value_rejects_unknown_key).cargo clippy --all-targets -- -D warnings(clean).cargo fmt --check(clean).--config <tmp> config set url/token/board ...thenconfig showmasks the token,config viewemits raw YAML matching Go's format, file permissions are 0600.youtrack-cli listreturns the expected stub error.Notes for reviewers
PLAN.mdlists one still-open question: whether to rewrite the Codex skill prompts for Rust binary semantics or copy verbatim. Defaulting to verbatim; flag if you disagree.PLAN.mdso the next PRs have an obvious order.check.ymlworkflow yet - milestone 8 in the plan. Easy to add now if you'd rather not wait.