Skip to content
Snippets Groups Projects
Commit acf9778e authored by Douwe Maan's avatar Douwe Maan
Browse files

Use specialized system notes when MR is (un)marked as WIP

parent 01160fc0
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.6.0 (unreleased)
- Improve the formatting for the user page bio (Connor Shea)
- Fix avatar stretching by providing a cropping feature (Johann Pardanaud)
- Use specialized system notes when MR is (un)marked as WIP
 
v 8.5.1
- Fix group projects styles
Loading
Loading
Loading
Loading
@@ -259,8 +259,14 @@ class MergeRequest < ActiveRecord::Base
self.target_project.events.where(target_id: self.id, target_type: "MergeRequest", action: Event::CLOSED).last
end
 
WIP_REGEX = /\A\[?WIP(\]|:| )\s*/i.freeze
def work_in_progress?
!!(title =~ /\A\[?WIP(\]|:| )/i)
title =~ WIP_REGEX
end
def wipless_title
self.title.sub(WIP_REGEX, "")
end
 
def mergeable?
Loading
Loading
Loading
Loading
@@ -5,6 +5,22 @@ module MergeRequests
SystemNoteService.change_status(merge_request, merge_request.target_project, current_user, merge_request.state, nil)
end
 
def create_title_change_note(issuable, old_title)
wipless_old_title = old_title.sub(MergeRequest::WIP_REGEX, "")
wipless_new_title = issuable.title.sub(MergeRequest::WIP_REGEX, "")
removed_wip = wipless_old_title == issuable.title
added_wip = wipless_new_title == old_title
if removed_wip
SystemNoteService.remove_merge_request_wip(issuable, issuable.project, current_user)
elsif added_wip
SystemNoteService.add_merge_request_wip(issuable, issuable.project, current_user)
else
super
end
end
def hook_data(merge_request, action)
hook_data = merge_request.to_hook_data(current_user)
merge_request_url = Gitlab::UrlBuilder.new(:merge_request).build(merge_request.id)
Loading
Loading
Loading
Loading
@@ -144,6 +144,18 @@ class SystemNoteService
create_note(noteable: noteable, project: project, author: author, note: body)
end
 
def self.remove_merge_request_wip(noteable, project, author)
body = 'Unmarked this merge request as Work In Progress'
create_note(noteable: noteable, project: project, author: author, note: body)
end
def self.add_merge_request_wip(noteable, project, author)
body = 'Marked this merge request as **Work In Progress**'
create_note(noteable: noteable, project: project, author: author, note: body)
end
# Called when the title of a Noteable is changed
#
# noteable - Noteable object that responds to `title`
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment