diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 0c44f621b08..b792d3fbf8d 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -75,5 +75,10 @@ module Gitlab expose :author, using: Entities::UserBasic expose :updated_at, :created_at end + + class MRNote < Grape::Entity + expose :note + expose :author, using: Entities::UserBasic + end end end diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index d8f2c51293a..1fa0c549b13 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -4,9 +4,9 @@ module Gitlab before { authenticate! } resource :projects do - + # List merge requests - # + # # Parameters: # id (required) - The ID or code name of a project # @@ -15,24 +15,24 @@ module Gitlab # get ":id/merge_requests" do authorize! :read_merge_request, user_project - + present paginate(user_project.merge_requests), with: Entities::MergeRequest end - + # Show MR - # + # # Parameters: # id (required) - The ID or code name of a project # merge_request_id (required) - The ID of MR - # + # # Example: # 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]) - + authorize! :read_merge_request, merge_request - + present merge_request, with: Entities::MergeRequest end @@ -45,17 +45,17 @@ module Gitlab # target_branch (required) - The target branch # assignee_id - Assignee user ID # title (required) - Title of MR - # + # # Example: # POST /projects/:id/merge_requests # post ":id/merge_requests" do authorize! :write_merge_request, user_project - + attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title] merge_request = user_project.merge_requests.new(attrs) merge_request.author = current_user - + if merge_request.save merge_request.reload_code present merge_request, with: Entities::MergeRequest @@ -80,9 +80,9 @@ module Gitlab put ":id/merge_request/:merge_request_id" do attrs = attributes_for_keys [:source_branch, :target_branch, :assignee_id, :title, :closed] merge_request = user_project.merge_requests.find(params[:merge_request_id]) - + authorize! :modify_merge_request, merge_request - + if merge_request.update_attributes attrs merge_request.reload_code merge_request.mark_as_unchecked @@ -98,7 +98,7 @@ module Gitlab # id (required) - The ID or code name of a project # merge_request_id (required) - ID of MR # note (required) - Text of comment - # Examples: + # Examples: # POST /projects/:id/merge_request/:merge_request_id/comments # post ":id/merge_request/:merge_request_id/comments" do @@ -107,7 +107,7 @@ module Gitlab note.author = current_user if note.save - present note, with: Entities::Note + present note, with: Entities::MRNote else not_found! end