API allow to create closed milestones (#11745)
* API allow to create closed milestones * set CloseDate too Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io>release/v1.15
parent
19db3f4f0a
commit
1ac46186ff
|
@ -44,4 +44,17 @@ func TestAPIIssuesMilestone(t *testing.T) {
|
|||
var apiMilestone2 structs.Milestone
|
||||
DecodeJSON(t, resp, &apiMilestone2)
|
||||
assert.EqualValues(t, "closed", apiMilestone2.State)
|
||||
|
||||
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?token=%s", owner.Name, repo.Name, token), structs.CreateMilestoneOption{
|
||||
Title: "wow",
|
||||
Description: "closed one",
|
||||
State: "closed",
|
||||
})
|
||||
resp = session.MakeRequest(t, req, http.StatusCreated)
|
||||
DecodeJSON(t, resp, &apiMilestone)
|
||||
assert.Equal(t, "wow", apiMilestone.Title)
|
||||
assert.Equal(t, structs.StateClosed, apiMilestone.State)
|
||||
|
||||
req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d?token=%s", owner.Name, repo.Name, apiMilestone.ID, token))
|
||||
resp = session.MakeRequest(t, req, http.StatusNoContent)
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ type CreateMilestoneOption struct {
|
|||
Description string `json:"description"`
|
||||
// swagger:strfmt date-time
|
||||
Deadline *time.Time `json:"due_on"`
|
||||
// enum: open,closed
|
||||
State string `json:"state"`
|
||||
}
|
||||
|
||||
// EditMilestoneOption options for editing a milestone
|
||||
|
|
|
@ -144,6 +144,11 @@ func CreateMilestone(ctx *context.APIContext, form api.CreateMilestoneOption) {
|
|||
DeadlineUnix: timeutil.TimeStamp(form.Deadline.Unix()),
|
||||
}
|
||||
|
||||
if form.State == "closed" {
|
||||
milestone.IsClosed = true
|
||||
milestone.ClosedDateUnix = timeutil.TimeStampNow()
|
||||
}
|
||||
|
||||
if err := models.NewMilestone(milestone); err != nil {
|
||||
ctx.Error(http.StatusInternalServerError, "NewMilestone", err)
|
||||
return
|
||||
|
|
|
@ -11384,6 +11384,14 @@
|
|||
"format": "date-time",
|
||||
"x-go-name": "Deadline"
|
||||
},
|
||||
"state": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"open",
|
||||
"closed"
|
||||
],
|
||||
"x-go-name": "State"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"x-go-name": "Title"
|
||||
|
|
Loading…
Reference in New Issue