summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 49a00697ee1..64f3c39f131 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -199,6 +199,8 @@ class MergeRequest < ActiveRecord::Base
end
def automerge!(current_user, commit_message = nil)
+ return unless automergeable?
+
MergeRequests::AutoMergeService.
new(target_project, current_user).
execute(self, commit_message)
@@ -208,6 +210,22 @@ class MergeRequest < ActiveRecord::Base
opened? || reopened?
end
+ def work_in_progress?
+ title =~ /\A\[?WIP\]?:? /i
+ end
+
+ def automergeable?
+ open? && !work_in_progress? && can_be_merged?
+ end
+
+ def automerge_status
+ if work_in_progress?
+ "work_in_progress"
+ else
+ merge_status_name
+ end
+ end
+
def mr_and_commit_notes
# Fetch comments only from last 100 commits
commits_for_notes_limit = 100