Commit Graph
6 Commits
Author SHA1 Message Date
mrcharles 37118f0db9 feat(cli): mred version update subcommand
`mred version update ID [--status open|closed] [--due YYYY-MM-DD]
[--name NAME]` flips milestone status, dates, and names; at least one
flag is required (usage error otherwise) and only provided flags are
sent. Text mode prints "updated version #N", -o json re-fetches and
emits the stored version, exit codes follow the 0/1/2 convention.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-29 08:12:16 -05:00
mrcharles 26824c3715 feat(redmine): partial UpdateVersion and GetVersion with fake endpoints
UpdateVersion issues PUT /versions/N.json sending only the fields the
caller set (untouched attributes never travel), and never parses the
empty 204 body Redmine answers with. GetVersion backs re-fetching one
milestone. The fake serves both endpoints with Redmine's semantics
(partial apply, 204 empty, 404 for unknown ids), and table tests pin
the exact request bodies, partiality, and error mapping.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-29 08:12:16 -05:00
mrcharles bbd85fae71 Add end-to-end smoke driving the real CLI against the containerized fake 2026-08-29 06:58:35 -05:00
mrcharles d98f0aeb93 Add the mred CLI over the library, with flags accepted after positionals
issue list/show/create/update, version list/create, category
list/create, relation create. Names resolve case-insensitively against
server enumerations; -o json everywhere; exit 0/1/2 with one-line
stderr carrying the http status for API failures.
2026-08-29 06:51:54 -05:00
mrcharles 20dbcf604d Add the Redmine REST client with a fake-server test suite
Issues (create/update/partial PUT, notes-as-journals), versions,
categories, relations, and name-to-id resolution over trackers/
statuses/priorities. Sentinel errors carry http codes one-line; response
bodies are never surfaced so the API key cannot leak through error
strings (the fake deliberately echoes the presented key to prove it).
2026-08-29 06:35:20 -05:00
mrcharles a3c83bd464 Add config loading from MRED_* env vars and 0600 env files 2026-08-29 06:26:22 -05:00