diff options
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 949cafc065f..f919cfe697e 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -260,7 +260,9 @@ class MergeRequest < ActiveRecord::Base end def mergeable? - mergeable_state? && check_if_can_be_merged + return false unless mergeable_state? + + check_if_can_be_merged can_be_merged? end @@ -269,7 +271,7 @@ class MergeRequest < ActiveRecord::Base return false unless open? return false if work_in_progress? return false if broken? - return false if cannot_be_merged_because_build_is_not_success? + return false unless mergeable_ci_state? true end @@ -488,10 +490,10 @@ class MergeRequest < ActiveRecord::Base ::Gitlab::GitAccess.new(user, project).can_push_to_branch?(target_branch) end - def cannot_be_merged_because_build_is_not_success? - return false unless project.only_allow_merge_if_build_succeeds? + def mergeable_ci_state? + return true unless project.only_allow_merge_if_build_succeeds? - ci_commit && !ci_commit.success? + !ci_commit || ci_commit.success? end def state_human_name |