diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-05-24 08:49:54 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-05-24 08:49:54 +0000 |
commit | e97a87433b2f55b2f688771cbe47d627f49d4b44 (patch) | |
tree | 68b698985cca79d2d9b1351ec186b356e5e3bec2 /app/presenters | |
parent | 56d2d462271da802a0126fa588f7ae76ae18f09f (diff) | |
parent | 13aa6f6740118743e47f24f01aa54fed30079f4d (diff) | |
download | gitlab-ce-e97a87433b2f55b2f688771cbe47d627f49d4b44.tar.gz |
Merge branch 'mr-conflict-notification' into 'master'
MR unmergeable notification
See merge request gitlab-org/gitlab-ce!18042
Diffstat (limited to 'app/presenters')
-rw-r--r-- | app/presenters/merge_request_presenter.rb | 11 |
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) |