Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/api/milestones.rb15
-rw-r--r--spec/requests/api/milestones_spec.rb14
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb
index 2ea49359df0..ca01fa4a57d 100644
--- a/lib/api/milestones.rb
+++ b/lib/api/milestones.rb
@@ -75,6 +75,21 @@ module API
render_api_error!("Failed to update milestone #{milestone.errors.messages}", 400)
end
end
+
+ # Get all issues for single project milestone
+ #
+ # Parameters:
+ # id (required) - The ID of a project
+ # milestone_id (required) - The ID of a project milestone
+ # Example Request:
+ # GET /projects/:id/milestones/:milestone_id/issues
+ get ":id/milestones/:milestone_id/issues" do
+ authorize! :read_milestone, user_project
+
+ @milestone = user_project.milestones.find(params[:milestone_id])
+ present paginate(@milestone.issues), with: Entities::Issue
+ end
+
end
end
end
diff --git a/spec/requests/api/milestones_spec.rb b/spec/requests/api/milestones_spec.rb
index f0619a1c801..73432cb22a7 100644
--- a/spec/requests/api/milestones_spec.rb
+++ b/spec/requests/api/milestones_spec.rb
@@ -96,4 +96,18 @@ describe API::API, api: true do
state_event: 'close'
end
end
+
+ describe "GET /projects/:id/milestones/:milestone_id/issues" do
+ it "should return project issues for a particular milestone" do
+ get api("/projects/#{project.id}/milestones/#{milestone.id}/issues", user)
+ response.status.should == 200
+ json_response.should be_an Array
+ json_response.first['milestone']['title'].should == milestone.title
+ end
+
+ it "should return a 401 error if user not authenticated" do
+ get api("/projects/#{project.id}/milestones/#{milestone.id}/issues")
+ response.status.should == 401
+ end
+ end
end