diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-01-29 23:53:47 -0200 |
---|---|---|
committer | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-01-29 23:53:47 -0200 |
commit | dbfedb5adb3651d3b700186b24a5b1b69d10a0dd (patch) | |
tree | c34420dc30ecfa6479595294d59fd623406bc550 /app/serializers/merge_request_widget_entity.rb | |
parent | 1f309b69df3f71d988d4d31b08a1b683099a46e5 (diff) | |
download | gitlab-ce-dbfedb5adb3651d3b700186b24a5b1b69d10a0dd.tar.gz |
Check MR state before submitting queries for discussion stateosw-short-circuit-mergeable-disccusions-state
Diffstat (limited to 'app/serializers/merge_request_widget_entity.rb')
-rw-r--r-- | app/serializers/merge_request_widget_entity.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/serializers/merge_request_widget_entity.rb b/app/serializers/merge_request_widget_entity.rb index 48cd2317f46..fbfe480503b 100644 --- a/app/serializers/merge_request_widget_entity.rb +++ b/app/serializers/merge_request_widget_entity.rb @@ -48,7 +48,18 @@ class MergeRequestWidgetEntity < IssuableEntity expose :merge_ongoing?, as: :merge_ongoing expose :work_in_progress?, as: :work_in_progress expose :source_branch_exists?, as: :source_branch_exists - expose :mergeable_discussions_state?, as: :mergeable_discussions_state + + expose :mergeable_discussions_state?, as: :mergeable_discussions_state do |merge_request| + # This avoids calling MergeRequest#mergeable_discussions_state without + # considering the state of the MR first. If a MR isn't mergeable, we can + # safely short-circuit it. + if merge_request.mergeable_state?(skip_ci_check: true, skip_discussions_check: true) + merge_request.mergeable_discussions_state? + else + false + end + end + expose :branch_missing?, as: :branch_missing expose :commits_count expose :cannot_be_merged?, as: :has_conflicts |