forked from gitea/gitea
		
	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>
This commit is contained in:
		
							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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 6543
						6543