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
e5998adc
Commit
e5998adc
authored
Oct 06, 2014
by
Marin Jankovski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Accommodate new webhook url format.
parent
216fb6ee
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
5 deletions
+28
-5
app/models/project_services/slack_service.rb
app/models/project_services/slack_service.rb
+7
-5
spec/models/slack_service_spec.rb
spec/models/slack_service_spec.rb
+21
-0
No files found.
app/models/project_services/slack_service.rb
View file @
e5998adc
...
...
@@ -40,11 +40,13 @@ class SlackService < Service
project_name:
project_name
))
credentials
=
webhook
.
match
(
/(\w*).slack.com.*token=(\w*)/
)
subdomain
=
credentials
[
1
]
token
=
credentials
[
2
]
notifier
=
Slack
::
Notifier
.
new
(
subdomain
,
token
)
notifier
.
ping
(
message
.
pretext
,
attachments:
message
.
attachments
)
credentials
=
webhook
.
match
(
/(\w*).slack.com.*services\/(.*)/
)
if
credentials
.
present?
subdomain
=
credentials
[
1
]
token
=
credentials
[
2
].
split
(
"token="
).
last
notifier
=
Slack
::
Notifier
.
new
(
subdomain
,
token
)
notifier
.
ping
(
message
.
pretext
,
attachments:
message
.
attachments
)
end
end
private
...
...
spec/models/slack_service_spec.rb
View file @
e5998adc
...
...
@@ -32,10 +32,12 @@ describe SlackService do
describe
"Execute"
do
let
(
:slack
)
{
SlackService
.
new
}
let
(
:slack_service
)
{
SlackService
.
new
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
)
}
let
(
:sample_data
)
{
GitPushService
.
new
.
sample_data
(
project
,
user
)
}
let
(
:webhook
)
{
'https://gitlabhq.slack.com/services/hooks?token=cdIj4r4LfXUOySDUjp0tk3OI'
}
let
(
:new_webhook
)
{
'https://hooks.gitlabhq.slack.com/services/cdIj4r4LfXUOySDUjp0tk3OI'
}
let
(
:api_url
)
{
'https://gitlabhq.slack.com/services/hooks/incoming-webhook?token=cdIj4r4LfXUOySDUjp0tk3OI'
}
...
...
@@ -56,5 +58,24 @@ describe SlackService do
WebMock
.
should
have_requested
(
:post
,
api_url
).
once
end
context
'with new webhook syntax'
do
before
do
slack_service
.
stub
(
project:
project
,
project_id:
project
.
id
,
service_hook:
true
,
webhook:
new_webhook
)
WebMock
.
stub_request
(
:post
,
api_url
)
end
it
"should call Slack API"
do
slack_service
.
execute
(
sample_data
)
WebMock
.
should
have_requested
(
:post
,
api_url
).
once
end
end
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