mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 19:11:25 +01:00
feat(milestone): milestone tables, views, forms and one selection model
milestone view printed the list row, and milestone list hid the due date and progress. milestone list now shows ID TITLE [STATE] DUE PROGRESS, open milestones first and by due date; milestone view shows the state, due date, progress, description and the milestone's web page (also --web). Every milestone command addresses milestones by title or ID. Mutations report ✓ lines: milestone create also prints the new milestone's URL and takes the title as an argument; close and reopen skip milestones already in that state; delete names the milestone in its confirmation; milestone issue add and remove report one line such as "✓ Added #1, #2 to milestone "v1.0" in alice/x". milestone issue list uses the issue table. milestone edit without flags on a terminal opens the milestone form with the current values, and every milestone command completes milestone titles and has help text with examples. Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
14 files changed
+606
-257
No files matched your search
@@ -57,7 +57,7 @@ func TestRemoveMilestoneRejectsDifferentMembership(t *testing.T) {
|
||||
_, _ = w.Write([]byte(`{"milestone":{"id":9}}`))
|
||||
}))
|
||||
service := Issues{Client: client, Repository: "alice/project"}
|
||||
_, err := service.RemoveMilestone(context.Background(), 7, 8)
|
||||
require.ErrorContains(t, err, "not assigned to milestone 8")
|
||||
_, err := service.RemoveMilestone(context.Background(), 7, Milestone{ID: 8, Title: "v1.0"})
|
||||
require.EqualError(t, err, `#7 is not in milestone "v1.0"`)
|
||||
require.Zero(t, mutations)
|
||||
}
|
||||
Reference in new issue
Block a user