Skip to content
Snippets Groups Projects
Verified Commit ba87b76d authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Use EventCreateService for notes, merge requests

parent 6cc4ac7b
No related branches found
No related tags found
No related merge requests found
Loading
@@ -2,24 +2,21 @@ class MergeRequestObserver < ActivityObserver
Loading
@@ -2,24 +2,21 @@ class MergeRequestObserver < ActivityObserver
observe :merge_request observe :merge_request
   
def after_create(merge_request) def after_create(merge_request)
if merge_request.author_id event_service.open_mr(merge_request, current_user)
create_event(merge_request, Event.determine_action(merge_request))
end
notification.new_merge_request(merge_request, current_user) notification.new_merge_request(merge_request, current_user)
merge_request.create_cross_references!(merge_request.project, current_user) merge_request.create_cross_references!(merge_request.project, current_user)
execute_hooks(merge_request) execute_hooks(merge_request)
end end
   
def after_close(merge_request, transition) def after_close(merge_request, transition)
create_event(merge_request, Event::CLOSED) event_service.close_mr(merge_request, current_user)
notification.close_mr(merge_request, current_user) notification.close_mr(merge_request, current_user)
create_note(merge_request) create_note(merge_request)
execute_hooks(merge_request) execute_hooks(merge_request)
end end
   
def after_reopen(merge_request, transition) def after_reopen(merge_request, transition)
create_event(merge_request, Event::REOPENED) event_service.reopen_mr(merge_request, current_user)
create_note(merge_request) create_note(merge_request)
execute_hooks(merge_request) execute_hooks(merge_request)
merge_request.reload_code merge_request.reload_code
Loading
@@ -33,16 +30,6 @@ class MergeRequestObserver < ActivityObserver
Loading
@@ -33,16 +30,6 @@ class MergeRequestObserver < ActivityObserver
execute_hooks(merge_request) execute_hooks(merge_request)
end end
   
def create_event(record, status)
Event.create(
project: record.target_project,
target_id: record.id,
target_type: record.class.name,
action: status,
author_id: current_user.id
)
end
private private
   
# Create merge request note with service comment like 'Status changed to closed' # Create merge request note with service comment like 'Status changed to closed'
Loading
Loading
Loading
@@ -2,6 +2,12 @@ class NoteObserver < BaseObserver
Loading
@@ -2,6 +2,12 @@ class NoteObserver < BaseObserver
def after_create(note) def after_create(note)
notification.new_note(note) notification.new_note(note)
   
# Skip system notes, like status changes and cross-references.
# Skip wall notes to prevent spamming of dashboard
if note.noteable_type.present? && !note.system
event_service.leave_note(note, current_user)
end
unless note.system? unless note.system?
# Create a cross-reference note if this Note contains GFM that names an # Create a cross-reference note if this Note contains GFM that names an
# issue, merge request, or commit. # issue, merge request, or commit.
Loading
Loading
Loading
@@ -42,6 +42,14 @@ class EventCreateService
Loading
@@ -42,6 +42,14 @@ class EventCreateService
create_event(milestone, current_user, Event::CLOSED) create_event(milestone, current_user, Event::CLOSED)
end end
   
def reopen_milestone(milestone, current_user)
create_event(milestone, current_user, Event::REOPENED)
end
def leave_note(note, current_user)
create_event(note, current_user, Event::COMMENTED)
end
private private
   
def create_event(record, current_user, status) def create_event(record, current_user, status)
Loading
Loading
Loading
@@ -8,13 +8,7 @@ module MergeRequests
Loading
@@ -8,13 +8,7 @@ module MergeRequests
end end
   
def create_merge_event(merge_request, current_user) def create_merge_event(merge_request, current_user)
Event.create( EventCreateService.new.merge_mr(merge_request, current_user)
project: merge_request.target_project,
target_id: merge_request.id,
target_type: merge_request.class.name,
action: Event::MERGED,
author_id: current_user.id
)
end end
   
def execute_project_hooks(merge_request) def execute_project_hooks(merge_request)
Loading
Loading
Loading
@@ -19,7 +19,7 @@ module Gitlab
Loading
@@ -19,7 +19,7 @@ module Gitlab
# config.plugins = [ :exception_notification, :ssl_requirement, :all ] # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
   
# Activate observers that should always be running. # Activate observers that should always be running.
config.active_record.observers = :activity_observer, config.active_record.observers = :milestone_observer,
:project_activity_cache_observer, :project_activity_cache_observer,
:issue_observer, :issue_observer,
:key_observer, :key_observer,
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