diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-03-25 15:08:25 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-03-25 15:08:25 +0200 |
commit | ba87b76de1177574e26ad09ca97c30fde76d7a45 (patch) | |
tree | 6b738cca6acdaedbc4e62bd200469a42c7929860 | |
parent | 6cc4ac7b98b0fb2ba028644fd8dc4e2d89b65e2a (diff) | |
download | gitlab-ce-ba87b76de1177574e26ad09ca97c30fde76d7a45.tar.gz |
Use EventCreateService for notes, merge requests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r-- | app/observers/merge_request_observer.rb | 19 | ||||
-rw-r--r-- | app/observers/note_observer.rb | 6 | ||||
-rw-r--r-- | app/services/event_create_service.rb | 8 | ||||
-rw-r--r-- | app/services/merge_requests/base_merge_service.rb | 8 | ||||
-rw-r--r-- | config/application.rb | 2 |
5 files changed, 19 insertions, 24 deletions
diff --git a/app/observers/merge_request_observer.rb b/app/observers/merge_request_observer.rb index f2e2d16c943..dd8dcd4b409 100644 --- a/app/observers/merge_request_observer.rb +++ b/app/observers/merge_request_observer.rb @@ -2,24 +2,21 @@ class MergeRequestObserver < ActivityObserver observe :merge_request def after_create(merge_request) - if merge_request.author_id - create_event(merge_request, Event.determine_action(merge_request)) - end - + event_service.open_mr(merge_request, current_user) notification.new_merge_request(merge_request, current_user) merge_request.create_cross_references!(merge_request.project, current_user) execute_hooks(merge_request) end 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) create_note(merge_request) execute_hooks(merge_request) end def after_reopen(merge_request, transition) - create_event(merge_request, Event::REOPENED) + event_service.reopen_mr(merge_request, current_user) create_note(merge_request) execute_hooks(merge_request) merge_request.reload_code @@ -33,16 +30,6 @@ class MergeRequestObserver < ActivityObserver execute_hooks(merge_request) 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 # Create merge request note with service comment like 'Status changed to closed' diff --git a/app/observers/note_observer.rb b/app/observers/note_observer.rb index d31b6e8d7ce..337bb1dc5ae 100644 --- a/app/observers/note_observer.rb +++ b/app/observers/note_observer.rb @@ -2,6 +2,12 @@ class NoteObserver < BaseObserver def after_create(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? # Create a cross-reference note if this Note contains GFM that names an # issue, merge request, or commit. diff --git a/app/services/event_create_service.rb b/app/services/event_create_service.rb index 8ff4dad674c..8d8a5873e62 100644 --- a/app/services/event_create_service.rb +++ b/app/services/event_create_service.rb @@ -42,6 +42,14 @@ class EventCreateService create_event(milestone, current_user, Event::CLOSED) 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 def create_event(record, current_user, status) diff --git a/app/services/merge_requests/base_merge_service.rb b/app/services/merge_requests/base_merge_service.rb index d0f777d50ec..9bc50d3d16c 100644 --- a/app/services/merge_requests/base_merge_service.rb +++ b/app/services/merge_requests/base_merge_service.rb @@ -8,13 +8,7 @@ module MergeRequests end def create_merge_event(merge_request, current_user) - Event.create( - project: merge_request.target_project, - target_id: merge_request.id, - target_type: merge_request.class.name, - action: Event::MERGED, - author_id: current_user.id - ) + EventCreateService.new.merge_mr(merge_request, current_user) end def execute_project_hooks(merge_request) diff --git a/config/application.rb b/config/application.rb index 4d7c1415c8e..a782dd1d01e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -19,7 +19,7 @@ module Gitlab # config.plugins = [ :exception_notification, :ssl_requirement, :all ] # Activate observers that should always be running. - config.active_record.observers = :activity_observer, + config.active_record.observers = :milestone_observer, :project_activity_cache_observer, :issue_observer, :key_observer, |