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
This commit is contained in:
2026-08-29 08:12:16 -05:00
parent 37118f0db9
commit 5abd352aa5
+8 -3
View File
@@ -66,6 +66,7 @@ EOF
mred issue update 506 --status "In Progress" --note "REPORT delivered"
mred relation create 490 492 --type blocks
mred version create -p MOPAC -n "Beta" --due 2026-08-31 --status open
mred version update 8 --status closed --due 2026-09-15
mred category create -p MOPAC -n "Secrets"
```
@@ -84,6 +85,7 @@ enumerations.
| `issue update ID` | partial update (only set fields are sent) | `--status`, `--priority`, `--category`, `--version`, `--due`, `--done-ratio 0-100`, `--desc FILE\|-`, `--note TEXT` (journal) |
| `version list -p PROJ` | roadmap milestones | `-o json` |
| `version create -p PROJ -n NAME` | create milestone (sharing=descendants) | `--due`, `--status open\|closed` |
| `version update ID` | partial update (only set flags are sent; server's 204 empty reply never parsed) | `--status open\|closed`, `--due YYYY-MM-DD`, `--name NAME`, `-o json` (re-fetches) |
| `category list -p PROJ` | issue categories | `-o json` |
| `category create -p PROJ -n NAME` | create category | |
| `relation create FROM TO` | relate two issues | `--type blocks\|relates` |
@@ -129,6 +131,8 @@ issue, _ := c.GetIssue(ctx, 506, true) // + journals
created, _ := c.CreateIssue(ctx, redmine.IssueParams{Project: "MOPAC", Subject: "…"})
_ = c.UpdateIssue(ctx, 506, redmine.IssueParams{StatusID: 3, Notes: "REPORT delivered"})
versions, _ := c.ListVersions(ctx, "MOPAC")
ver, _ := c.GetVersion(ctx, 8) // one milestone
_ = c.UpdateVersion(ctx, 8, redmine.VersionParams{Status: "closed"}) // PUT -> 204, partial
cats, _ := c.ListCategories(ctx, "MOPAC")
rel, _ := c.CreateRelation(ctx, 490, 492, "blocks")
@@ -138,8 +142,9 @@ id, _ = c.VersionIDByName(ctx, "MOPAC", "Beta") // milestone id
id, _ = c.CategoryIDByName(ctx, "MOPAC", "Secrets")
```
`UpdateIssue` sends only the fields you set (partial update — untouched
attributes are never clobbered). All methods take a `context.Context`.
`UpdateIssue` and `UpdateVersion` send only the fields you set (partial
update — untouched attributes are never clobbered); `UpdateVersion`
swallows Redmine's empty 204 reply. All methods take a `context.Context`.
## Development
@@ -157,7 +162,7 @@ sentinels), unreachable/malformed handling, and key-redaction.
| Area | State |
|---|---|
| Library (issues, versions, categories, relations, enums) | done, green |
| Library (issues, versions incl. update, categories, relations, enums) | done, green |
| CLI surface (task spec in Redmine #506) | done, green |
| Fake-Redmine test suite | done, green (unit + smoke) |
| Key redaction | done, tested (fake echoes the key; nothing leaks) |