diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 9e9d44594a292e838c0e63cae923e530f79380c2..2679ed9e8e7748d2ce859c41e1dc6aaa1c8be305 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -65,7 +65,7 @@ module Gitlab end class MergeRequest < Grape::Entity - expose :id, :target_branch, :source_branch, :project_id, :title, :closed, :merged + expose :id, :target_branch, :source_branch, :project_id, :title, :closed, :merged, :state expose :author, :assignee, using: Entities::UserBasic end diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 1fa0c549b13944af844a30bac1aad96cafe37426..4c1d85d0d5a126c9973089a70e13bdc82776521a 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -36,6 +36,26 @@ module Gitlab present merge_request, with: Entities::MergeRequest end + # Show MR commits + # + # 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/commits + # + get ":id/merge_request/:merge_request_id/commits" do + merge_request = user_project.merge_requests.find(params[:merge_request_id]) + + authorize! :read_merge_request, merge_request + authorize! :download_code, user_project + + commits = merge_request.unmerged_commits + present CommitDecorator.decorate(commits), with: Entities::RepoCommit + + end + # Create MR # # Parameters: