summaryrefslogtreecommitdiff
path: root/app/presenters
diff options
context:
space:
mode:
authorlulalala <mark@goodlife.tw>2018-05-09 17:49:33 +0800
committerMark Chao <mchao@gitlab.com>2018-05-17 08:54:51 +0800
commitdc174e9655267e89e1b7c63f8c9f4dac069069c7 (patch)
tree33cebe2481870434098f88f253090f2de91b873d /app/presenters
parent179a1ee7c669e758f8dc9fb5e9c8f2563012a6e1 (diff)
downloadgitlab-ce-dc174e9655267e89e1b7c63f8c9f4dac069069c7.tar.gz
Notify with email when merge request became unmergeable
Display MR unmergeable reasons
Diffstat (limited to 'app/presenters')
-rw-r--r--app/presenters/merge_request_presenter.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb
index 4b4132af2d0..ad839d9840a 100644
--- a/app/presenters/merge_request_presenter.rb
+++ b/app/presenters/merge_request_presenter.rb
@@ -20,6 +20,17 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
end
+ def unmergeable_reasons
+ strong_memoize(:unmergeable_reasons) do
+ reasons = []
+ reasons << "no commits" if merge_request.has_no_commits?
+ reasons << "source branch is missing" unless merge_request.source_branch_exists?
+ reasons << "target branch is missing" unless merge_request.target_branch_exists?
+ reasons << "has merge conflicts" unless merge_request.project.repository.can_be_merged?(merge_request.diff_head_sha, merge_request.target_branch)
+ reasons
+ end
+ end
+
def cancel_merge_when_pipeline_succeeds_path
if can_cancel_merge_when_pipeline_succeeds?(current_user)
cancel_merge_when_pipeline_succeeds_project_merge_request_path(project, merge_request)