summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorjurre <jurrestender+github@gmail.com>2016-12-15 21:48:26 +0100
committerjurre <jurrestender+github@gmail.com>2017-01-19 12:30:34 +0100
commite59623e7388d67433ede87db1dad134f6f176f98 (patch)
treea93e528ba7791c73b4f6907593258d6a3ecec78e /app/services
parentd3f26be6f08cd0656589306eb06991b93d1c5825 (diff)
downloadgitlab-ce-e59623e7388d67433ede87db1dad134f6f176f98.tar.gz
Mark MR as WIP when pushing WIP commits
Diffstat (limited to 'app/services')
-rw-r--r--app/services/merge_requests/refresh_service.rb19
-rw-r--r--app/services/system_note_service.rb6
2 files changed, 25 insertions, 0 deletions
diff --git a/app/services/merge_requests/refresh_service.rb b/app/services/merge_requests/refresh_service.rb
index 0a9563ed7e7..51d5d7563fc 100644
--- a/app/services/merge_requests/refresh_service.rb
+++ b/app/services/merge_requests/refresh_service.rb
@@ -21,6 +21,7 @@ module MergeRequests
end
comment_mr_with_commits
+ mark_mr_as_wip_from_commits
execute_mr_web_hooks
true
@@ -136,6 +137,24 @@ module MergeRequests
end
end
+ def mark_mr_as_wip_from_commits
+ return unless @commits.present?
+
+ merge_requests_for_source_branch.each do |merge_request|
+ wip_commit = @commits.detect(&:work_in_progress?)
+
+ if wip_commit && !merge_request.work_in_progress?
+ merge_request.update(title: merge_request.wip_title)
+ SystemNoteService.add_merge_request_wip_from_commit(
+ merge_request,
+ merge_request.project,
+ @current_user,
+ wip_commit
+ )
+ end
+ end
+ end
+
# Call merge request webhook with update branches
def execute_mr_web_hooks
merge_requests_for_source_branch.each do |merge_request|
diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index 5ca2551ee61..a11bca00687 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -208,6 +208,12 @@ module SystemNoteService
create_note(noteable: noteable, project: project, author: author, note: body)
end
+ def add_merge_request_wip_from_commit(noteable, project, author, commit)
+ body = "marked as a **Work In Progress** from #{commit.to_reference(project)}"
+
+ create_note(noteable: noteable, project: project, author: author, note: body)
+ end
+
def self.resolve_all_discussions(merge_request, project, author)
body = "resolved all discussions"