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
Jérome Perrin
gitlab-ce
Commits
e68ad7fb
Commit
e68ad7fb
authored
Mar 06, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
parents
7dadd423
1cc41ce1
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
134 additions
and
64 deletions
+134
-64
CHANGELOG
CHANGELOG
+3
-3
app/models/project_services/hipchat_service.rb
app/models/project_services/hipchat_service.rb
+22
-16
app/models/project_services/slack_service.rb
app/models/project_services/slack_service.rb
+2
-2
app/models/project_services/slack_service/issue_message.rb
app/models/project_services/slack_service/issue_message.rb
+4
-4
app/models/project_services/slack_service/merge_message.rb
app/models/project_services/slack_service/merge_message.rb
+10
-4
app/models/project_services/slack_service/note_message.rb
app/models/project_services/slack_service/note_message.rb
+6
-6
app/models/project_services/slack_service/push_message.rb
app/models/project_services/slack_service/push_message.rb
+13
-6
spec/models/project_services/hipchat_service_spec.rb
spec/models/project_services/hipchat_service_spec.rb
+37
-8
spec/models/project_services/slack_service/issue_message_spec.rb
...dels/project_services/slack_service/issue_message_spec.rb
+6
-5
spec/models/project_services/slack_service/merge_message_spec.rb
...dels/project_services/slack_service/merge_message_spec.rb
+7
-6
spec/models/project_services/slack_service/note_message_spec.rb
...odels/project_services/slack_service/note_message_spec.rb
+4
-4
spec/models/project_services/slack_service/push_message_spec.rb
...odels/project_services/slack_service/push_message_spec.rb
+20
-0
No files found.
CHANGELOG
View file @
e68ad7fb
Please view this file on the master branch, on stable branches it's out of date.
Please view this file on the master branch, on stable branches it's out of date.
v 7.9.0 (unreleased)
v 7.9.0 (unreleased)
- Added comment notification events to HipChat and Slack services (Stan Hu)
- Add tag push notifications and normalize HipChat and Slack messages to be consistent (Stan Hu)
- Added issue and merge request events to HipChat and Slack services (Stan Hu)
- Add comment notification events to HipChat and Slack services (Stan Hu)
- Add issue and merge request events to HipChat and Slack services (Stan Hu)
- Fix merge request URL passed to Webhooks. (Stan Hu)
- Fix merge request URL passed to Webhooks. (Stan Hu)
- Fix bug that caused a server error when editing a comment to "+1" or "-1" (Stan Hu)
- Fix bug that caused a server error when editing a comment to "+1" or "-1" (Stan Hu)
- Move labels/milestones tabs to sidebar
- Move labels/milestones tabs to sidebar
...
@@ -36,7 +37,6 @@ v 7.8.2
...
@@ -36,7 +37,6 @@ v 7.8.2
- Fix response of push to repository to return "Not found" if user doesn't have access
- Fix response of push to repository to return "Not found" if user doesn't have access
- Fix check if user is allowed to view the file attachment
- Fix check if user is allowed to view the file attachment
- Fix import check for case sensetive namespaces
- Fix import check for case sensetive namespaces
- Added issue and merge request events to Slack service (Stan Hu)
- Increase timeout for Git-over-HTTP requests to 1 hour since large pulls/pushes can take a long time.
- Increase timeout for Git-over-HTTP requests to 1 hour since large pulls/pushes can take a long time.
v 7.8.1
v 7.8.1
...
...
app/models/project_services/hipchat_service.rb
View file @
e68ad7fb
...
@@ -45,7 +45,7 @@ class HipchatService < Service
...
@@ -45,7 +45,7 @@ class HipchatService < Service
end
end
def
supported_events
def
supported_events
%w(push issue merge_request note)
%w(push issue merge_request note
tag_push
)
end
end
def
execute
(
data
)
def
execute
(
data
)
...
@@ -67,7 +67,7 @@ class HipchatService < Service
...
@@ -67,7 +67,7 @@ class HipchatService < Service
message
=
\
message
=
\
case
object_kind
case
object_kind
when
"push"
when
"push"
,
"tag_push"
create_push_message
(
data
)
create_push_message
(
data
)
when
"issue"
when
"issue"
create_issue_message
(
data
)
unless
is_update?
(
data
)
create_issue_message
(
data
)
unless
is_update?
(
data
)
...
@@ -79,21 +79,27 @@ class HipchatService < Service
...
@@ -79,21 +79,27 @@ class HipchatService < Service
end
end
def
create_push_message
(
push
)
def
create_push_message
(
push
)
ref
=
push
[
:ref
].
gsub
(
"refs/heads/"
,
""
)
if
push
[
:ref
].
starts_with?
(
'refs/tags/'
)
ref_type
=
'tag'
ref
=
push
[
:ref
].
gsub
(
'refs/tags/'
,
''
)
else
ref_type
=
'branch'
ref
=
push
[
:ref
].
gsub
(
'refs/heads/'
,
''
)
end
before
=
push
[
:before
]
before
=
push
[
:before
]
after
=
push
[
:after
]
after
=
push
[
:after
]
message
=
""
message
=
""
message
<<
"
#{
push
[
:user_name
]
}
"
message
<<
"
#{
push
[
:user_name
]
}
"
if
before
.
include?
(
'000000'
)
if
before
.
include?
(
'000000'
)
message
<<
"pushed new
branch
<a href=
\"
"
\
message
<<
"pushed new
#{
ref_type
}
<a href=
\"
"
\
"
#{
project_url
}
/commits/
#{
URI
.
escape
(
ref
)
}
\"
>
#{
ref
}
</a>"
\
"
#{
project_url
}
/commits/
#{
URI
.
escape
(
ref
)
}
\"
>
#{
ref
}
</a>"
\
" to <a href=
\"
#{
project_url
}
\"
>"
\
" to
#{
project_link
}
\n
"
"
#{
project_url
}
</a>
\n
"
elsif
after
.
include?
(
'000000'
)
elsif
after
.
include?
(
'000000'
)
message
<<
"removed
branch
#{
ref
}
from <a href=
\"
#{
project
.
web_url
}
\"
>
#{
project
.
name_with_namespace
.
gsub!
(
/\s/
,
''
)
}
</a>
\n
"
message
<<
"removed
#{
ref_type
}
<b>
#{
ref
}
</b> from <a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>
\n
"
else
else
message
<<
"pushed to
branch
<a href=
\"
"
\
message
<<
"pushed to
#{
ref_type
}
<a href=
\"
"
\
"
#{
project
.
web_url
}
/commits/
#{
URI
.
escape
(
ref
)
}
\"
>
#{
ref
}
</a> "
"
#{
project
.
web_url
}
/commits/
#{
URI
.
escape
(
ref
)
}
\"
>
#{
ref
}
</a> "
message
<<
"of <a href=
\"
#{
project
.
web_url
}
\"
>
#{
project
.
name_with_namespace
.
gsub!
(
/\s/
,
''
)
}
</a> "
message
<<
"of <a href=
\"
#{
project
.
web_url
}
\"
>
#{
project
.
name_with_namespace
.
gsub!
(
/\s/
,
''
)
}
</a> "
message
<<
"(<a href=
\"
#{
project
.
web_url
}
/compare/
#{
before
}
...
#{
after
}
\"
>Compare changes</a>)"
message
<<
"(<a href=
\"
#{
project
.
web_url
}
/compare/
#{
before
}
...
#{
after
}
\"
>Compare changes</a>)"
...
@@ -119,7 +125,7 @@ class HipchatService < Service
...
@@ -119,7 +125,7 @@ class HipchatService < Service
end
end
def
create_issue_message
(
data
)
def
create_issue_message
(
data
)
user
name
=
data
[
:user
][
:user
name
]
user
_name
=
data
[
:user
][
:
name
]
obj_attr
=
data
[
:object_attributes
]
obj_attr
=
data
[
:object_attributes
]
obj_attr
=
HashWithIndifferentAccess
.
new
(
obj_attr
)
obj_attr
=
HashWithIndifferentAccess
.
new
(
obj_attr
)
...
@@ -129,8 +135,8 @@ class HipchatService < Service
...
@@ -129,8 +135,8 @@ class HipchatService < Service
issue_url
=
obj_attr
[
:url
]
issue_url
=
obj_attr
[
:url
]
description
=
obj_attr
[
:description
]
description
=
obj_attr
[
:description
]
issue_link
=
"<a href=
\"
#{
issue_url
}
\"
>#
#{
issue_iid
}
</a>"
issue_link
=
"<a href=
\"
#{
issue_url
}
\"
>
issue
#
#{
issue_iid
}
</a>"
message
=
"
#{
user
name
}
#{
state
}
issue
#{
issue_link
}
in
#{
project_link
}
: <b>
#{
title
}
</b>"
message
=
"
#{
user
_name
}
#{
state
}
#{
issue_link
}
in
#{
project_link
}
: <b>
#{
title
}
</b>"
if
description
if
description
description
=
format_body
(
description
)
description
=
format_body
(
description
)
...
@@ -141,7 +147,7 @@ class HipchatService < Service
...
@@ -141,7 +147,7 @@ class HipchatService < Service
end
end
def
create_merge_request_message
(
data
)
def
create_merge_request_message
(
data
)
user
name
=
data
[
:user
][
:user
name
]
user
_name
=
data
[
:user
][
:
name
]
obj_attr
=
data
[
:object_attributes
]
obj_attr
=
data
[
:object_attributes
]
obj_attr
=
HashWithIndifferentAccess
.
new
(
obj_attr
)
obj_attr
=
HashWithIndifferentAccess
.
new
(
obj_attr
)
...
@@ -153,8 +159,8 @@ class HipchatService < Service
...
@@ -153,8 +159,8 @@ class HipchatService < Service
title
=
obj_attr
[
:title
]
title
=
obj_attr
[
:title
]
merge_request_url
=
"
#{
project_url
}
/merge_requests/
#{
merge_request_id
}
"
merge_request_url
=
"
#{
project_url
}
/merge_requests/
#{
merge_request_id
}
"
merge_request_link
=
"<a href=
\"
#{
merge_request_url
}
\"
>#
#{
merge_request_id
}
</a>"
merge_request_link
=
"<a href=
\"
#{
merge_request_url
}
\"
>
merge request
#
#{
merge_request_id
}
</a>"
message
=
"
#{
user
name
}
#{
state
}
merge request
#{
merge_request_link
}
in "
\
message
=
"
#{
user
_name
}
#{
state
}
#{
merge_request_link
}
in "
\
"
#{
project_link
}
: <b>
#{
title
}
</b>"
"
#{
project_link
}
: <b>
#{
title
}
</b>"
if
description
if
description
...
@@ -171,7 +177,7 @@ class HipchatService < Service
...
@@ -171,7 +177,7 @@ class HipchatService < Service
def
create_note_message
(
data
)
def
create_note_message
(
data
)
data
=
HashWithIndifferentAccess
.
new
(
data
)
data
=
HashWithIndifferentAccess
.
new
(
data
)
user
name
=
data
[
:user
][
:user
name
]
user
_name
=
data
[
:user
][
:
name
]
repo_attr
=
HashWithIndifferentAccess
.
new
(
data
[
:repository
])
repo_attr
=
HashWithIndifferentAccess
.
new
(
data
[
:repository
])
...
@@ -208,7 +214,7 @@ class HipchatService < Service
...
@@ -208,7 +214,7 @@ class HipchatService < Service
end
end
subject_html
=
"<a href=
\"
#{
note_url
}
\"
>
#{
subject_type
}
#{
subject_desc
}
</a>"
subject_html
=
"<a href=
\"
#{
note_url
}
\"
>
#{
subject_type
}
#{
subject_desc
}
</a>"
message
=
"
#{
username
}
commented on
#{
subject_html
}
in
#{
project_link
}
: "
message
=
"
#{
user
_
name
}
commented on
#{
subject_html
}
in
#{
project_link
}
: "
message
<<
title
message
<<
title
if
note
if
note
...
...
app/models/project_services/slack_service.rb
View file @
e68ad7fb
...
@@ -44,7 +44,7 @@ class SlackService < Service
...
@@ -44,7 +44,7 @@ class SlackService < Service
end
end
def
supported_events
def
supported_events
%w(push issue merge_request note)
%w(push issue merge_request note
tag_push
)
end
end
def
execute
(
data
)
def
execute
(
data
)
...
@@ -64,7 +64,7 @@ class SlackService < Service
...
@@ -64,7 +64,7 @@ class SlackService < Service
message
=
\
message
=
\
case
object_kind
case
object_kind
when
"push"
when
"push"
,
"tag_push"
PushMessage
.
new
(
data
)
PushMessage
.
new
(
data
)
when
"issue"
when
"issue"
IssueMessage
.
new
(
data
)
unless
is_update?
(
data
)
IssueMessage
.
new
(
data
)
unless
is_update?
(
data
)
...
...
app/models/project_services/slack_service/issue_message.rb
View file @
e68ad7fb
class
SlackService
class
SlackService
class
IssueMessage
<
BaseMessage
class
IssueMessage
<
BaseMessage
attr_reader
:username
attr_reader
:user
_
name
attr_reader
:title
attr_reader
:title
attr_reader
:project_name
attr_reader
:project_name
attr_reader
:project_url
attr_reader
:project_url
...
@@ -11,7 +11,7 @@ class SlackService
...
@@ -11,7 +11,7 @@ class SlackService
attr_reader
:description
attr_reader
:description
def
initialize
(
params
)
def
initialize
(
params
)
@user
name
=
params
[
:user
][
:user
name
]
@user
_name
=
params
[
:user
][
:
name
]
@project_name
=
params
[
:project_name
]
@project_name
=
params
[
:project_name
]
@project_url
=
params
[
:project_url
]
@project_url
=
params
[
:project_url
]
...
@@ -34,7 +34,7 @@ class SlackService
...
@@ -34,7 +34,7 @@ class SlackService
private
private
def
message
def
message
"
#{
user
name
}
#{
state
}
issue
#{
issue_link
}
in
#{
project_link
}
:
#{
title
}
"
"
#{
user
_name
}
#{
state
}
#{
issue_link
}
in
#{
project_link
}
: *
#{
title
}
*
"
end
end
def
opened_issue?
def
opened_issue?
...
@@ -50,7 +50,7 @@ class SlackService
...
@@ -50,7 +50,7 @@ class SlackService
end
end
def
issue_link
def
issue_link
"[#
#{
issue_iid
}
](
#{
issue_url
}
)"
"[
issue
#
#{
issue_iid
}
](
#{
issue_url
}
)"
end
end
end
end
end
end
app/models/project_services/slack_service/merge_message.rb
View file @
e68ad7fb
class
SlackService
class
SlackService
class
MergeMessage
<
BaseMessage
class
MergeMessage
<
BaseMessage
attr_reader
:username
attr_reader
:user
_
name
attr_reader
:project_name
attr_reader
:project_name
attr_reader
:project_url
attr_reader
:project_url
attr_reader
:merge_request_id
attr_reader
:merge_request_id
attr_reader
:source_branch
attr_reader
:source_branch
attr_reader
:target_branch
attr_reader
:target_branch
attr_reader
:state
attr_reader
:state
attr_reader
:title
def
initialize
(
params
)
def
initialize
(
params
)
@user
name
=
params
[
:user
][
:user
name
]
@user
_name
=
params
[
:user
][
:
name
]
@project_name
=
params
[
:project_name
]
@project_name
=
params
[
:project_name
]
@project_url
=
params
[
:project_url
]
@project_url
=
params
[
:project_url
]
...
@@ -19,6 +20,7 @@ class SlackService
...
@@ -19,6 +20,7 @@ class SlackService
@source_branch
=
obj_attr
[
:source_branch
]
@source_branch
=
obj_attr
[
:source_branch
]
@target_branch
=
obj_attr
[
:target_branch
]
@target_branch
=
obj_attr
[
:target_branch
]
@state
=
obj_attr
[
:state
]
@state
=
obj_attr
[
:state
]
@title
=
format_title
(
obj_attr
[
:title
])
end
end
def
pretext
def
pretext
...
@@ -31,6 +33,10 @@ class SlackService
...
@@ -31,6 +33,10 @@ class SlackService
private
private
def
format_title
(
title
)
'*'
+
title
.
lines
.
first
.
chomp
+
'*'
end
def
message
def
message
merge_request_message
merge_request_message
end
end
...
@@ -40,11 +46,11 @@ class SlackService
...
@@ -40,11 +46,11 @@ class SlackService
end
end
def
merge_request_message
def
merge_request_message
"
#{
user
name
}
#{
state
}
merge request
#{
merge_request_link
}
in
#{
project_link
}
"
"
#{
user
_name
}
#{
state
}
#{
merge_request_link
}
in
#{
project_link
}
:
#{
title
}
"
end
end
def
merge_request_link
def
merge_request_link
"[#
#{
merge_request_id
}
](
#{
merge_request_url
}
)"
"[
merge request
#
#{
merge_request_id
}
](
#{
merge_request_url
}
)"
end
end
def
merge_request_url
def
merge_request_url
...
...
app/models/project_services/slack_service/note_message.rb
View file @
e68ad7fb
class
SlackService
class
SlackService
class
NoteMessage
<
BaseMessage
class
NoteMessage
<
BaseMessage
attr_reader
:message
attr_reader
:message
attr_reader
:username
attr_reader
:user
_
name
attr_reader
:project_name
attr_reader
:project_name
attr_reader
:project_link
attr_reader
:project_link
attr_reader
:note
attr_reader
:note
...
@@ -10,7 +10,7 @@ class SlackService
...
@@ -10,7 +10,7 @@ class SlackService
def
initialize
(
params
)
def
initialize
(
params
)
params
=
HashWithIndifferentAccess
.
new
(
params
)
params
=
HashWithIndifferentAccess
.
new
(
params
)
@user
name
=
params
[
:user
][
:user
name
]
@user
_name
=
params
[
:user
][
:
name
]
@project_name
=
params
[
:project_name
]
@project_name
=
params
[
:project_name
]
@project_url
=
params
[
:project_url
]
@project_url
=
params
[
:project_url
]
...
@@ -47,28 +47,28 @@ class SlackService
...
@@ -47,28 +47,28 @@ class SlackService
commit_sha
=
Commit
.
truncate_sha
(
commit_sha
)
commit_sha
=
Commit
.
truncate_sha
(
commit_sha
)
commit_link
=
"[commit
#{
commit_sha
}
](
#{
@note_url
}
)"
commit_link
=
"[commit
#{
commit_sha
}
](
#{
@note_url
}
)"
title
=
format_title
(
commit
[
:message
])
title
=
format_title
(
commit
[
:message
])
@message
=
"
#{
@username
}
commented on
#{
commit_link
}
in
#{
project_link
}
: *
#{
title
}
*"
@message
=
"
#{
@user
_
name
}
commented on
#{
commit_link
}
in
#{
project_link
}
: *
#{
title
}
*"
end
end
def
create_issue_note
(
issue
)
def
create_issue_note
(
issue
)
issue_iid
=
issue
[
:iid
]
issue_iid
=
issue
[
:iid
]
note_link
=
"[issue #
#{
issue_iid
}
](
#{
@note_url
}
)"
note_link
=
"[issue #
#{
issue_iid
}
](
#{
@note_url
}
)"
title
=
format_title
(
issue
[
:title
])
title
=
format_title
(
issue
[
:title
])
@message
=
"
#{
@username
}
commented on
#{
note_link
}
in
#{
project_link
}
: *
#{
title
}
*"
@message
=
"
#{
@user
_
name
}
commented on
#{
note_link
}
in
#{
project_link
}
: *
#{
title
}
*"
end
end
def
create_merge_note
(
merge_request
)
def
create_merge_note
(
merge_request
)
merge_request_id
=
merge_request
[
:iid
]
merge_request_id
=
merge_request
[
:iid
]
merge_request_link
=
"[merge request #
#{
merge_request_id
}
](
#{
@note_url
}
)"
merge_request_link
=
"[merge request #
#{
merge_request_id
}
](
#{
@note_url
}
)"
title
=
format_title
(
merge_request
[
:title
])
title
=
format_title
(
merge_request
[
:title
])
@message
=
"
#{
@username
}
commented on
#{
merge_request_link
}
in
#{
project_link
}
: *
#{
title
}
*"
@message
=
"
#{
@user
_
name
}
commented on
#{
merge_request_link
}
in
#{
project_link
}
: *
#{
title
}
*"
end
end
def
create_snippet_note
(
snippet
)
def
create_snippet_note
(
snippet
)
snippet_id
=
snippet
[
:id
]
snippet_id
=
snippet
[
:id
]
snippet_link
=
"[snippet #
#{
snippet_id
}
](
#{
@note_url
}
)"
snippet_link
=
"[snippet #
#{
snippet_id
}
](
#{
@note_url
}
)"
title
=
format_title
(
snippet
[
:title
])
title
=
format_title
(
snippet
[
:title
])
@message
=
"
#{
@username
}
commented on
#{
snippet_link
}
in
#{
project_link
}
: *
#{
title
}
*"
@message
=
"
#{
@user
_
name
}
commented on
#{
snippet_link
}
in
#{
project_link
}
: *
#{
title
}
*"
end
end
def
description_message
def
description_message
...
...
app/models/project_services/slack_service/push_message.rb
View file @
e68ad7fb
...
@@ -6,7 +6,8 @@ class SlackService
...
@@ -6,7 +6,8 @@ class SlackService
attr_reader
:project_name
attr_reader
:project_name
attr_reader
:project_url
attr_reader
:project_url
attr_reader
:ref
attr_reader
:ref
attr_reader
:username
attr_reader
:ref_type
attr_reader
:user_name
def
initialize
(
params
)
def
initialize
(
params
)
@after
=
params
[
:after
]
@after
=
params
[
:after
]
...
@@ -14,8 +15,14 @@ class SlackService
...
@@ -14,8 +15,14 @@ class SlackService
@commits
=
params
.
fetch
(
:commits
,
[])
@commits
=
params
.
fetch
(
:commits
,
[])
@project_name
=
params
[
:project_name
]
@project_name
=
params
[
:project_name
]
@project_url
=
params
[
:project_url
]
@project_url
=
params
[
:project_url
]
@ref
=
params
[
:ref
].
gsub
(
'refs/heads/'
,
''
)
if
params
[
:ref
].
starts_with?
(
'refs/tags/'
)
@username
=
params
[
:user_name
]
@ref_type
=
'tag'
@ref
=
params
[
:ref
].
gsub
(
'refs/tags/'
,
''
)
else
@ref_type
=
'branch'
@ref
=
params
[
:ref
].
gsub
(
'refs/heads/'
,
''
)
end
@user_name
=
params
[
:user_name
]
end
end
def
pretext
def
pretext
...
@@ -45,15 +52,15 @@ class SlackService
...
@@ -45,15 +52,15 @@ class SlackService
end
end
def
new_branch_message
def
new_branch_message
"
#{
user
name
}
pushed new branch
#{
branch_link
}
to
#{
project_link
}
"
"
#{
user
_name
}
pushed new
#{
ref_type
}
#{
branch_link
}
to
#{
project_link
}
"
end
end
def
removed_branch_message
def
removed_branch_message
"
#{
user
name
}
removed branch
#{
ref
}
from
#{
project_link
}
"
"
#{
user
_name
}
removed
#{
ref_type
}
#{
ref
}
from
#{
project_link
}
"
end
end
def
push_message
def
push_message
"
#{
user
name
}
pushed to branch
#{
branch_link
}
of
#{
project_link
}
(
#{
compare_link
}
)"
"
#{
user
_name
}
pushed to
#{
ref_type
}
#{
branch_link
}
of
#{
project_link
}
(
#{
compare_link
}
)"
end
end
def
commit_messages
def
commit_messages
...
...
spec/models/project_services/hipchat_service_spec.rb
View file @
e68ad7fb
...
@@ -50,6 +50,35 @@ describe HipchatService do
...
@@ -50,6 +50,35 @@ describe HipchatService do
expect
(
WebMock
).
to
have_requested
(
:post
,
api_url
).
once
expect
(
WebMock
).
to
have_requested
(
:post
,
api_url
).
once
end
end
it
"should create a push message"
do
message
=
hipchat
.
send
(
:create_push_message
,
push_sample_data
)
obj_attr
=
push_sample_data
[
:object_attributes
]
branch
=
push_sample_data
[
:ref
].
gsub
(
'refs/heads/'
,
''
)
expect
(
message
).
to
include
(
"
#{
user
.
name
}
pushed to branch "
\
"<a href=
\"
#{
project
.
web_url
}
/commits/
#{
branch
}
\"
>
#{
branch
}
</a> of "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>"
)
end
end
context
'tag_push events'
do
let
(
:push_sample_data
)
{
Gitlab
::
PushDataBuilder
.
build
(
project
,
user
,
'000000'
,
'111111'
,
'refs/tags/test'
,
[])
}
it
"should call Hipchat API for tag push events"
do
hipchat
.
execute
(
push_sample_data
)
expect
(
WebMock
).
to
have_requested
(
:post
,
api_url
).
once
end
it
"should create a tag push message"
do
message
=
hipchat
.
send
(
:create_push_message
,
push_sample_data
)
obj_attr
=
push_sample_data
[
:object_attributes
]
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
pushed new tag "
\
"<a href=
\"
#{
project
.
web_url
}
/commits/test
\"
>test</a> to "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>
\n
"
)
end
end
end
context
'issue events'
do
context
'issue events'
do
...
@@ -67,8 +96,8 @@ describe HipchatService do
...
@@ -67,8 +96,8 @@ describe HipchatService do
message
=
hipchat
.
send
(
:create_issue_message
,
issues_sample_data
)
message
=
hipchat
.
send
(
:create_issue_message
,
issues_sample_data
)
obj_attr
=
issues_sample_data
[
:object_attributes
]
obj_attr
=
issues_sample_data
[
:object_attributes
]
expect
(
message
).
to
eq
(
"
#{
user
.
username
}
opened issue
"
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
opened
"
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>#
#{
obj_attr
[
"iid"
]
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>
issue
#
#{
obj_attr
[
"iid"
]
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<b>Awesome issue</b>"
\
"<b>Awesome issue</b>"
\
"<pre>please fix</pre>"
)
"<pre>please fix</pre>"
)
...
@@ -91,8 +120,8 @@ describe HipchatService do
...
@@ -91,8 +120,8 @@ describe HipchatService do
merge_sample_data
)
merge_sample_data
)
obj_attr
=
merge_sample_data
[
:object_attributes
]
obj_attr
=
merge_sample_data
[
:object_attributes
]
expect
(
message
).
to
eq
(
"
#{
user
.
username
}
opened merge request
"
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
opened
"
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>#
#{
obj_attr
[
"iid"
]
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>
merge request
#
#{
obj_attr
[
"iid"
]
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<b>Awesome merge request</b>"
\
"<b>Awesome merge request</b>"
\
"<pre>please fix</pre>"
)
"<pre>please fix</pre>"
)
...
@@ -122,7 +151,7 @@ describe HipchatService do
...
@@ -122,7 +151,7 @@ describe HipchatService do
commit_id
=
Commit
.
truncate_sha
(
data
[
:commit
][
:id
])
commit_id
=
Commit
.
truncate_sha
(
data
[
:commit
][
:id
])
title
=
hipchat
.
send
(
:format_title
,
data
[
:commit
][
:message
])
title
=
hipchat
.
send
(
:format_title
,
data
[
:commit
][
:message
])
expect
(
message
).
to
eq
(
"
#{
user
.
user
name
}
commented on "
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
commented on "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>commit
#{
commit_id
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>commit
#{
commit_id
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"
#{
title
}
"
\
"
#{
title
}
"
\
...
@@ -141,7 +170,7 @@ describe HipchatService do
...
@@ -141,7 +170,7 @@ describe HipchatService do
merge_id
=
data
[
:merge_request
][
'iid'
]
merge_id
=
data
[
:merge_request
][
'iid'
]
title
=
data
[
:merge_request
][
'title'
]
title
=
data
[
:merge_request
][
'title'
]
expect
(
message
).
to
eq
(
"
#{
user
.
user
name
}
commented on "
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
commented on "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>merge request #
#{
merge_id
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>merge request #
#{
merge_id
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<b>
#{
title
}
</b>"
\
"<b>
#{
title
}
</b>"
\
...
@@ -158,7 +187,7 @@ describe HipchatService do
...
@@ -158,7 +187,7 @@ describe HipchatService do
issue_id
=
data
[
:issue
][
'iid'
]
issue_id
=
data
[
:issue
][
'iid'
]
title
=
data
[
:issue
][
'title'
]
title
=
data
[
:issue
][
'title'
]
expect
(
message
).
to
eq
(
"
#{
user
.
user
name
}
commented on "
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
commented on "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>issue #
#{
issue_id
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>issue #
#{
issue_id
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<b>
#{
title
}
</b>"
\
"<b>
#{
title
}
</b>"
\
...
@@ -177,7 +206,7 @@ describe HipchatService do
...
@@ -177,7 +206,7 @@ describe HipchatService do
snippet_id
=
data
[
:snippet
][
'id'
]
snippet_id
=
data
[
:snippet
][
'id'
]
title
=
data
[
:snippet
][
'title'
]
title
=
data
[
:snippet
][
'title'
]
expect
(
message
).
to
eq
(
"
#{
user
.
user
name
}
commented on "
\
expect
(
message
).
to
eq
(
"
#{
user
.
name
}
commented on "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>snippet #
#{
snippet_id
}
</a> in "
\
"<a href=
\"
#{
obj_attr
[
:url
]
}
\"
>snippet #
#{
snippet_id
}
</a> in "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<a href=
\"
#{
project
.
web_url
}
\"
>
#{
project_name
}
</a>: "
\
"<b>
#{
title
}
</b>"
\
"<b>
#{
title
}
</b>"
\
...
...
spec/models/project_services/slack_service/issue_message_spec.rb
View file @
e68ad7fb
...
@@ -6,7 +6,8 @@ describe SlackService::IssueMessage do
...
@@ -6,7 +6,8 @@ describe SlackService::IssueMessage do
let
(
:args
)
{
let
(
:args
)
{
{
{
user:
{
user:
{
username:
'username'
name:
'Test User'
,
username:
'Test User'
},
},
project_name:
'project_name'
,
project_name:
'project_name'
,
project_url:
'somewhere.com'
,
project_url:
'somewhere.com'
,
...
@@ -29,8 +30,8 @@ describe SlackService::IssueMessage do
...
@@ -29,8 +30,8 @@ describe SlackService::IssueMessage do
context
'open'
do
context
'open'
do
it
'returns a message regarding opening of issues'
do
it
'returns a message regarding opening of issues'
do
expect
(
subject
.
pretext
).
to
eq
(
expect
(
subject
.
pretext
).
to
eq
(
'
username opened issue <url|
#100> in <somewhere.com|project_name>: '
\
'
Test User opened <url|issue
#100> in <somewhere.com|project_name>: '
\
'
Issue title
'
)
'
*Issue title*
'
)
expect
(
subject
.
attachments
).
to
eq
([
expect
(
subject
.
attachments
).
to
eq
([
{
{
text:
"issue description"
,
text:
"issue description"
,
...
@@ -47,8 +48,8 @@ describe SlackService::IssueMessage do
...
@@ -47,8 +48,8 @@ describe SlackService::IssueMessage do
end
end
it
'returns a message regarding closing of issues'
do
it
'returns a message regarding closing of issues'
do
expect
(
subject
.
pretext
).
to
eq
(
expect
(
subject
.
pretext
).
to
eq
(
'
username closed issue <url|
#100> in <somewhere.com|project_name>: '
\
'
Test User closed <url|issue
#100> in <somewhere.com|project_name>: '
\
'
Issue title
'
)
'
*Issue title*
'
)
expect
(
subject
.
attachments
).
to
be_empty
expect
(
subject
.
attachments
).
to
be_empty
end
end
end
end
...
...
spec/models/project_services/slack_service/merge_message_spec.rb
View file @
e68ad7fb
...
@@ -6,13 +6,14 @@ describe SlackService::MergeMessage do
...
@@ -6,13 +6,14 @@ describe SlackService::MergeMessage do
let
(
:args
)
{
let
(
:args
)
{
{
{
user:
{
user:
{
username:
'username'
name:
'Test User'
,
username:
'Test User'
},
},
project_name:
'project_name'
,
project_name:
'project_name'
,
project_url:
'somewhere.com'
,
project_url:
'somewhere.com'
,
object_attributes:
{
object_attributes:
{
title:
'Issue title'
,
title:
"Issue title
\n
Second line"
,
id:
10
,
id:
10
,
iid:
100
,
iid:
100
,
assignee_id:
1
,
assignee_id:
1
,
...
@@ -30,8 +31,8 @@ describe SlackService::MergeMessage do
...
@@ -30,8 +31,8 @@ describe SlackService::MergeMessage do
context
'open'
do
context
'open'
do
it
'returns a message regarding opening of merge requests'
do
it
'returns a message regarding opening of merge requests'
do
expect
(
subject
.
pretext
).
to
eq
(
expect
(
subject
.
pretext
).
to
eq
(
'
username opened merge request <somewhere.com/merge_requests/100|
#100> '
\
'
Test User opened <somewhere.com/merge_requests/100|merge request
#100> '
\
'in <somewhere.com|project_name>'
)
'in <somewhere.com|project_name>
: *Issue title*
'
)
expect
(
subject
.
attachments
).
to
be_empty
expect
(
subject
.
attachments
).
to
be_empty
end
end
end
end
...
@@ -42,8 +43,8 @@ describe SlackService::MergeMessage do
...
@@ -42,8 +43,8 @@ describe SlackService::MergeMessage do
end
end
it
'returns a message regarding closing of merge requests'
do
it
'returns a message regarding closing of merge requests'
do
expect
(
subject
.
pretext
).
to
eq
(
expect
(
subject
.
pretext
).
to
eq
(
'
username closed merge request <somewhere.com/merge_requests/100|
#100> '
\
'
Test User closed <somewhere.com/merge_requests/100|merge request
#100> '
\
'in <somewhere.com|project_name>'
)
'in <somewhere.com|project_name>
: *Issue title*
'
)
expect
(
subject
.
attachments
).
to
be_empty
expect
(
subject
.
attachments
).
to
be_empty
end
end
end
end
...
...
spec/models/project_services/slack_service/note_message_spec.rb
View file @
e68ad7fb
...
@@ -37,7 +37,7 @@ describe SlackService::NoteMessage do
...
@@ -37,7 +37,7 @@ describe SlackService::NoteMessage do
it
'returns a message regarding notes on commits'
do
it
'returns a message regarding notes on commits'
do
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
expect
(
message
.
pretext
).
to
eq
(
"
username
commented on "
\
expect
(
message
.
pretext
).
to
eq
(
"
Test User
commented on "
\
"<url|commit 5f163b2b> in <somewhere.com|project_name>: "
\
"<url|commit 5f163b2b> in <somewhere.com|project_name>: "
\
"*Added a commit message*"
)
"*Added a commit message*"
)
expected_attachments
=
[
expected_attachments
=
[
...
@@ -62,7 +62,7 @@ describe SlackService::NoteMessage do
...
@@ -62,7 +62,7 @@ describe SlackService::NoteMessage do
end
end
it
'returns a message regarding notes on a merge request'
do
it
'returns a message regarding notes on a merge request'
do
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
expect
(
message
.
pretext
).
to
eq
(
"
username
commented on "
\
expect
(
message
.
pretext
).
to
eq
(
"
Test User
commented on "
\
"<url|merge request #30> in <somewhere.com|project_name>: "
\
"<url|merge request #30> in <somewhere.com|project_name>: "
\
"*merge request title*"
)
"*merge request title*"
)
expected_attachments
=
[
expected_attachments
=
[
...
@@ -89,7 +89,7 @@ describe SlackService::NoteMessage do
...
@@ -89,7 +89,7 @@ describe SlackService::NoteMessage do
it
'returns a message regarding notes on an issue'
do
it
'returns a message regarding notes on an issue'
do
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
expect
(
message
.
pretext
).
to
eq
(
expect
(
message
.
pretext
).
to
eq
(
"
username
commented on "
\
"
Test User
commented on "
\
"<url|issue #20> in <somewhere.com|project_name>: "
\
"<url|issue #20> in <somewhere.com|project_name>: "
\
"*issue title*"
)
"*issue title*"
)
expected_attachments
=
[
expected_attachments
=
[
...
@@ -114,7 +114,7 @@ describe SlackService::NoteMessage do
...
@@ -114,7 +114,7 @@ describe SlackService::NoteMessage do
it
'returns a message regarding notes on a project snippet'
do
it
'returns a message regarding notes on a project snippet'
do
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
message
=
SlackService
::
NoteMessage
.
new
(
@args
)
expect
(
message
.
pretext
).
to
eq
(
"
username
commented on "
\
expect
(
message
.
pretext
).
to
eq
(
"
Test User
commented on "
\
"<url|snippet #5> in <somewhere.com|project_name>: "
\
"<url|snippet #5> in <somewhere.com|project_name>: "
\
"*snippet title*"
)
"*snippet title*"
)
expected_attachments
=
[
expected_attachments
=
[
...
...
spec/models/project_services/slack_service/push_message_spec.rb
View file @
e68ad7fb
...
@@ -39,6 +39,26 @@ describe SlackService::PushMessage do
...
@@ -39,6 +39,26 @@ describe SlackService::PushMessage do
end
end
end
end
context
'tag push'
do
let
(
:args
)
{
{
after:
'after'
,
before:
'000000'
,
project_name:
'project_name'
,
ref:
'refs/tags/new_tag'
,
user_name:
'user_name'
,
project_url:
'url'
}
}
it
'returns a message regarding pushes'
do
expect
(
subject
.
pretext
).
to
eq
(
'user_name pushed new tag '
\
'<url/commits/new_tag|new_tag> to '
\
'<url|project_name>'
)
expect
(
subject
.
attachments
).
to
be_empty
end
end
context
'new branch'
do
context
'new branch'
do
before
do
before
do
args
[
:before
]
=
'000000'
args
[
:before
]
=
'000000'
...
...
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