diff options
author | Jeroen Nijhof <jeroen@jeroennijhof.nl> | 2016-01-07 13:58:19 +0100 |
---|---|---|
committer | Jeroen Nijhof <jeroen@jeroennijhof.nl> | 2016-01-07 13:58:19 +0100 |
commit | 1695063d15498ce41d3e3f62b7ec88effb9e1eca (patch) | |
tree | 5e3fd6d580c58d942f844273daae934d5f54001f /app/models/merge_request.rb | |
parent | bde76f62fc2bd259dcc37ca649a01a84035ddcd9 (diff) | |
parent | 3b04268f6825776e12d3a7766eeb059f892765f3 (diff) | |
download | gitlab-ce-1695063d15498ce41d3e3f62b7ec88effb9e1eca.tar.gz |
Merge gitlab.com:gitlab-org/gitlab-ce
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index ac25d38eb63..30d0c2b5961 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -229,6 +229,8 @@ class MergeRequest < ActiveRecord::Base end def check_if_can_be_merged + return unless unchecked? + can_be_merged = project.repository.can_be_merged?(source_sha, target_branch) @@ -252,7 +254,11 @@ class MergeRequest < ActiveRecord::Base end def mergeable? - open? && !work_in_progress? && can_be_merged? + return false unless open? && !work_in_progress? + + check_if_can_be_merged + + can_be_merged? end def gitlab_merge_status @@ -452,6 +458,10 @@ class MergeRequest < ActiveRecord::Base !source_branch_exists? || !target_branch_exists? end + def broken? + self.commits.blank? || branch_missing? || cannot_be_merged? + end + def can_be_merged_by?(user) ::Gitlab::GitAccess.new(user, project).can_push_to_branch?(target_branch) end @@ -507,8 +517,4 @@ class MergeRequest < ActiveRecord::Base def ci_commit @ci_commit ||= source_project.ci_commit(last_commit.id) if last_commit && source_project end - - def broken? - self.commits.blank? || branch_missing? || cannot_be_merged? - end end |