From 2944896466ea89a334556c19c82b5403ab6b9f32 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Tue, 23 Jan 2018 19:08:10 -0200 Subject: [PATCH] Return more consistent values for merge_status on MR API --- .../osw-updates-merge-status-on-api-actions.yml | 5 +++++ lib/api/entities.rb | 9 ++++++++- spec/requests/api/merge_requests_spec.rb | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/osw-updates-merge-status-on-api-actions.yml diff --git a/changelogs/unreleased/osw-updates-merge-status-on-api-actions.yml b/changelogs/unreleased/osw-updates-merge-status-on-api-actions.yml new file mode 100644 index 00000000000..3854985e576 --- /dev/null +++ b/changelogs/unreleased/osw-updates-merge-status-on-api-actions.yml @@ -0,0 +1,5 @@ +--- +title: Return more consistent values for merge_status on MR APIs +merge_request: +author: +type: fixed diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 7b9a80a234b..ac5b6e518fd 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -507,7 +507,14 @@ module API expose :work_in_progress?, as: :work_in_progress expose :milestone, using: Entities::Milestone expose :merge_when_pipeline_succeeds - expose :merge_status + + # Ideally we should deprecate `MergeRequest#merge_status` exposure and + # use `MergeRequest#mergeable?` instead (boolean). + # See https://gitlab.com/gitlab-org/gitlab-ce/issues/42344 for more + # information. + expose :merge_status do |merge_request| + merge_request.tap(&:check_if_can_be_merged).merge_status + end expose :diff_head_sha, as: :sha expose :merge_commit_sha expose :user_notes_count diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index 8e2982f1a5d..14dd9da119d 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -198,6 +198,8 @@ describe API::MergeRequests do create(:merge_request, state: 'closed', milestone: milestone1, author: user, assignee: user, source_project: project, target_project: project, title: "Test", created_at: base_time) + create(:merge_request, milestone: milestone1, author: user, assignee: user, source_project: project, target_project: project, title: "Test", created_at: base_time) + expect do get api("/projects/#{project.id}/merge_requests", user) end.not_to exceed_query_limit(control) -- GitLab