Commit Graph
11 Commits
Author SHA1 Message Date
mrcharles 5abd352aa5 docs(readme): document version update
Add the command-reference row, a quickstart line, the library-surface
signatures, and a status-table note that version updates are done and
green.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-08-29 08:12:16 -05:00
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 788f6fe1d2 Record live-tracker read verification in the status table 2026-08-29 07:03:28 -05:00
mrcharles 4ad9f6f04a Document mred to the docs standard (verified quickstart, reference tables) 2026-08-29 07:01:40 -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
mrcharles c3b86b16b7 Add dev harness routing all builds through the digest-pinned builder 2026-08-29 06:26:22 -05:00
mrcharles 4b9aa5fae5 Seed: mopac-redmine-go CLI posture (stdlib-only REST, AGPLv3) 2026-08-29 06:24:18 -05:00