diff --git a/README.md b/README.md index 90a3207..2b33737 100644 --- a/README.md +++ b/README.md @@ -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) |