diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index 2f7c93eb4d6..e5b067a61d9 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -3,7 +3,7 @@ Get all MR for this project. ``` -GET /:id/merge_requests +GET /projects/:id/merge_requests ``` Parameters: @@ -43,7 +43,7 @@ Parameters: Show information about MR. ``` -GET /:id/merge_request/:merge_request_id +GET /projects/:id/merge_request/:merge_request_id ``` Parameters: @@ -83,7 +83,7 @@ Parameters: Create MR. ``` -POST /:id/merge_requests +POST /projects/:id/merge_requests ``` Parameters: @@ -125,7 +125,7 @@ Parameters: Update MR. You can change branches, title, or even close the MR. ``` -PUT /:id/merge_request/:merge_request_id +PUT /projects/:id/merge_request/:merge_request_id ``` Parameters: @@ -169,7 +169,7 @@ Parameters: Post comment to MR ``` -POST /:id/merge_request/:merge_request_id/comments +POST /projects/:id/merge_request/:merge_request_id/comments ``` Parameters: diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index c9377ad2053..b2f4fe0c961 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -11,7 +11,7 @@ module Gitlab # id (required) - The ID or code name of a project # # Example: - # GET /:id/merge_requests + # GET /projects/:id/merge_requests # get ":id/merge_requests" do authorize! :read_merge_request, user_project @@ -26,7 +26,7 @@ module Gitlab # merge_request_id (required) - The ID of MR # # Example: - # GET /:id/merge_request/:merge_request_id + # GET /projects/:id/merge_request/:merge_request_id # get ":id/merge_request/:merge_request_id" do merge_request = user_project.merge_requests.find(params[:merge_request_id]) @@ -47,7 +47,7 @@ module Gitlab # title (required) - Title of MR # # Example: - # POST /:id/merge_requests + # POST /projects/:id/merge_requests # post ":id/merge_requests" do attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title] @@ -75,7 +75,7 @@ module Gitlab # title - Title of MR # closed - Status of MR. true - closed # Example: - # PUT /:id/merge_request/:merge_request_id + # PUT /projects/:id/merge_request/:merge_request_id # put ":id/merge_request/:merge_request_id" do attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed] @@ -99,7 +99,7 @@ module Gitlab # merge_request_id (required) - ID of MR # note (required) - Text of comment # Examples: - # POST /:id/merge_request/:merge_request_id/comments + # POST /projects/:id/merge_request/:merge_request_id/comments # post ":id/merge_request/:merge_request_id/comments" do merge_request = user_project.merge_requests.find(params[:merge_request_id]) diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb new file mode 100644 index 00000000000..a1f020f4973 --- /dev/null +++ b/spec/requests/api/merge_requests_spec.rb @@ -0,0 +1,62 @@ +require "spec_helper" + +describe Gitlab::API do + include ApiHelpers + + let(:user) { Factory :user } + let!(:project) { Factory :project, owner: user } + let!(:merge_request) { Factory :merge_request, author: user, assignee: user, project: project, title: "Test" } + before { project.add_access(user, :read) } + + describe "GET /projects/:id/merge_requests" do + context "when unauthenticated" do + it "should return authentication error" do + get api("/projects/#{project.id}/merge_requests") + response.status.should == 401 + end + end + + context "when authenticated" do + it "should return an array of merge_requests" do + get api("/projects/#{project.id}/merge_requests", user) + response.status.should == 200 + json_response.should be_an Array + json_response.first['title'].should == merge_request.title + end + end + end + + describe "GET /projects/:id/merge_request/:merge_request_id" do + it "should return merge_request" do + get api("/projects/#{project.id}/merge_request/#{merge_request.id}", user) + response.status.should == 200 + json_response['title'].should == merge_request.title + end + end + + describe "POST /projects/:id/merge_requests" do + it "should return merge_request" do + post api("/projects/#{project.id}/merge_requests", user), + title: 'Test merge_request', source_branch: "stable", target_branch: "master", author: user + response.status.should == 201 + json_response['title'].should == 'Test merge_request' + end + end + + describe "PUT /projects/:id/merge_request/:merge_request_id" do + it "should return merge_request" do + put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), title: "New title" + response.status.should == 200 + json_response['title'].should == 'New title' + end + end + + describe "POST /projects/:id/merge_request/:merge_request_id/comments" do + it "should return comment" do + post api("/projects/#{project.id}/merge_request/#{merge_request.id}/comments", user), note: "My comment" + response.status.should == 201 + json_response['note'].should == 'My comment' + end + end + +end