Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
65cd9829
Commit
65cd9829
authored
Apr 02, 2014
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove MergeRequest observer
Signed-off-by:
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
parent
6ae25290
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
175 deletions
+0
-175
app/observers/merge_request_observer.rb
app/observers/merge_request_observer.rb
+0
-43
config/application.rb
config/application.rb
+0
-1
spec/observers/merge_request_observer_spec.rb
spec/observers/merge_request_observer_spec.rb
+0
-131
No files found.
app/observers/merge_request_observer.rb
deleted
100644 → 0
View file @
6ae25290
class
MergeRequestObserver
<
BaseObserver
def
after_create
(
merge_request
)
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
)
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
)
event_service
.
reopen_mr
(
merge_request
,
current_user
)
create_note
(
merge_request
)
execute_hooks
(
merge_request
)
merge_request
.
reload_code
merge_request
.
mark_as_unchecked
end
def
after_update
(
merge_request
)
notification
.
reassigned_merge_request
(
merge_request
,
current_user
)
if
merge_request
.
is_being_reassigned?
merge_request
.
notice_added_references
(
merge_request
.
project
,
current_user
)
execute_hooks
(
merge_request
)
end
private
# Create merge request note with service comment like 'Status changed to closed'
def
create_note
(
merge_request
)
Note
.
create_status_change_note
(
merge_request
,
merge_request
.
target_project
,
current_user
,
merge_request
.
state
,
nil
)
end
def
execute_hooks
(
merge_request
)
if
merge_request
.
project
merge_request
.
project
.
execute_hooks
(
merge_request
.
to_hook_data
,
:merge_request_hooks
)
end
end
end
config/application.rb
View file @
65cd9829
...
...
@@ -21,7 +21,6 @@ module Gitlab
# Activate observers that should always be running.
config
.
active_record
.
observers
=
:milestone_observer
,
:project_activity_cache_observer
,
:merge_request_observer
,
:note_observer
,
:project_observer
,
:system_hook_observer
,
...
...
spec/observers/merge_request_observer_spec.rb
deleted
100644 → 0
View file @
6ae25290
require
'spec_helper'
describe
MergeRequestObserver
do
let
(
:some_user
)
{
create
:user
}
let
(
:assignee
)
{
create
:user
}
let
(
:author
)
{
create
:user
}
let
(
:project
)
{
create
:project
}
let
(
:mr_mock
)
{
double
(
:merge_request
,
id:
42
,
assignee:
assignee
,
author:
author
).
as_null_object
}
let
(
:assigned_mr
)
{
create
(
:merge_request
,
assignee:
assignee
,
author:
author
,
source_project:
project
)
}
let
(
:unassigned_mr
)
{
create
(
:merge_request
,
author:
author
,
source_project:
project
)
}
let
(
:closed_assigned_mr
)
{
create
(
:closed_merge_request
,
assignee:
assignee
,
author:
author
,
source_project:
project
)
}
let
(
:closed_unassigned_mr
)
{
create
(
:closed_merge_request
,
author:
author
,
source_project:
project
)
}
before
{
subject
.
stub
(
:current_user
).
and_return
(
some_user
)
}
before
{
subject
.
stub
(
notification:
double
(
'NotificationService'
).
as_null_object
)
}
before
{
mr_mock
.
stub
(
:author_id
)
}
before
{
mr_mock
.
stub
(
:source_project
)
}
before
{
mr_mock
.
stub
(
:source_project
)
}
before
{
mr_mock
.
stub
(
:project
)
}
before
{
mr_mock
.
stub
(
:create_cross_references!
).
and_return
(
true
)
}
before
{
Repository
.
any_instance
.
stub
(
commit:
nil
)
}
before
(
:each
)
{
enable_observers
}
after
(
:each
)
{
disable_observers
}
subject
{
MergeRequestObserver
.
instance
}
describe
'#after_create'
do
it
'trigger notification service'
do
subject
.
should_receive
(
:notification
)
subject
.
after_create
(
mr_mock
)
end
it
'creates cross-reference notes'
do
project
=
create
:project
mr_mock
.
stub
(
title:
"this mr references !
#{
assigned_mr
.
id
}
"
,
project:
project
)
mr_mock
.
should_receive
(
:create_cross_references!
).
with
(
project
,
some_user
)
subject
.
after_create
(
mr_mock
)
end
end
context
'#after_update'
do
before
(
:each
)
do
mr_mock
.
stub
(
:is_being_reassigned?
).
and_return
(
false
)
mr_mock
.
stub
(
:notice_added_references
)
end
it
'is called when a merge request is changed'
do
changed
=
create
(
:merge_request
,
source_project:
project
)
subject
.
should_receive
(
:after_update
)
MergeRequest
.
observers
.
enable
:merge_request_observer
do
changed
.
title
=
'I changed'
changed
.
save
end
end
it
'checks for new references'
do
mr_mock
.
should_receive
(
:notice_added_references
)
subject
.
after_update
(
mr_mock
)
end
context
'a notification'
do
it
'is sent if the merge request is being reassigned'
do
mr_mock
.
should_receive
(
:is_being_reassigned?
).
and_return
(
true
)
subject
.
should_receive
(
:notification
)
subject
.
after_update
(
mr_mock
)
end
it
'is not sent if the merge request is not being reassigned'
do
mr_mock
.
should_receive
(
:is_being_reassigned?
).
and_return
(
false
)
subject
.
should_not_receive
(
:notification
)
subject
.
after_update
(
mr_mock
)
end
end
end
context
'#after_close'
do
context
'a status "closed"'
do
it
'note is created if the merge request is being closed'
do
Note
.
should_receive
(
:create_status_change_note
).
with
(
assigned_mr
,
assigned_mr
.
source_project
,
some_user
,
'closed'
,
nil
)
assigned_mr
.
close
end
it
'notification is delivered only to author if the merge request is being closed'
do
Note
.
should_receive
(
:create_status_change_note
).
with
(
unassigned_mr
,
unassigned_mr
.
source_project
,
some_user
,
'closed'
,
nil
)
unassigned_mr
.
close
end
end
end
context
'#after_reopen'
do
context
'a status "reopened"'
do
it
'note is created if the merge request is being reopened'
do
Note
.
should_receive
(
:create_status_change_note
).
with
(
closed_assigned_mr
,
closed_assigned_mr
.
source_project
,
some_user
,
'reopened'
,
nil
)
closed_assigned_mr
.
reopen
end
it
'notification is delivered only to author if the merge request is being reopened'
do
Note
.
should_receive
(
:create_status_change_note
).
with
(
closed_unassigned_mr
,
closed_unassigned_mr
.
source_project
,
some_user
,
'reopened'
,
nil
)
closed_unassigned_mr
.
reopen
end
end
end
describe
"Merge Request created"
do
def
self
.
it_should_be_valid_event
it
{
@event
.
should_not
be_nil
}
it
{
@event
.
should_not
be_nil
}
it
{
@event
.
project
.
should
==
project
}
it
{
@event
.
project
.
should
==
project
}
end
before
do
@merge_request
=
create
(
:merge_request
,
source_project:
project
,
target_project:
project
)
@event
=
Event
.
last
end
it_should_be_valid_event
it
{
@event
.
action
.
should
==
Event
::
CREATED
}
it
{
@event
.
target
.
should
==
@merge_request
}
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment