Skip to content
Snippets Groups Projects
Commit 43493eca authored by Rémy Coutable's avatar Rémy Coutable
Browse files

Merge branch 'slack-issue-format' into 'master'

Improve issue formatting in Slack service

This will improve the looks of the message that gets send to Slack.

**Before**

![image](https://gitlab.com/jeroenvanbaarsen/gitlab-ce/uploads/670442d4d5cef5aa36753671b8894a75/image.png)

**After**

![image](https://gitlab.com/jeroenvanbaarsen/gitlab-ce/uploads/ab6e40a0c22ebe89ebd5b3652821c6dd/image.png)

There is one thing I'm not certain about, thats sending the logo with the payload. Because this means we need to host the GitLab logo somewhere public, and every time a payload from any GitLab instance is send, we use that logo url. This might overload the server, or drive the bandwidth bill through the roof.
This is something @sytses or @dzaporozhets have to decide about.

@stanhu, you told me you were the author of the original code, maybe you can review?

See merge request !1308
parents 5da1c23b 78e2d0ac
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -59,6 +59,7 @@ v 8.8.0 (unreleased)
- Add counter metrics for rails cache
- Import pull requests from GitHub where the source or target branches were removed
- All Grape API helpers are now instrumented
- Improve Issue formatting for the Slack Service (Jeroen van Baarsen)
 
v 8.7.6
- Fix links on wiki pages for relative url setups. !4131 (Artem Sidorenko)
Loading
Loading
@@ -893,7 +894,7 @@ v 8.1.3
- Use issue editor as cross reference comment author when issue is edited with a new mention
- Add Facebook authentication
 
v 8.1.2
v 8.1.1
- Fix cloning Wiki repositories via HTTP (Stan Hu)
- Add migration to remove satellites directory
- Fix specific runners visibility
Loading
Loading
Loading
Loading
@@ -34,7 +34,12 @@ class SlackService
private
 
def message
"#{user_name} #{state} #{issue_link} in #{project_link}: *#{title}*"
case state
when "opened"
"[#{project_link}] Issue #{state} by #{user_name}"
else
"[#{project_link}] Issue #{issue_link} #{state} by #{user_name}"
end
end
 
def opened_issue?
Loading
Loading
@@ -42,7 +47,11 @@ class SlackService
end
 
def description_message
[{ text: format(description), color: attachment_color }]
[{
title: issue_title,
title_link: issue_url,
text: format(description),
color: "#C95823" }]
end
 
def project_link
Loading
Loading
@@ -50,7 +59,11 @@ class SlackService
end
 
def issue_link
"[issue ##{issue_iid}](#{issue_url})"
"[#{issue_title}](#{issue_url})"
end
def issue_title
"##{issue_iid} #{title}"
end
end
end
Loading
Loading
@@ -25,7 +25,7 @@ describe SlackService::IssueMessage, models: true do
}
end
 
let(:color) { '#345' }
let(:color) { '#C95823' }
 
context '#initialize' do
before do
Loading
Loading
@@ -40,10 +40,11 @@ describe SlackService::IssueMessage, models: true do
context 'open' do
it 'returns a message regarding opening of issues' do
expect(subject.pretext).to eq(
'Test User opened <url|issue #100> in <somewhere.com|project_name>: '\
'*Issue title*')
'<somewhere.com|[project_name>] Issue opened by Test User')
expect(subject.attachments).to eq([
{
title: "#100 Issue title",
title_link: "url",
text: "issue description",
color: color,
}
Loading
Loading
@@ -56,10 +57,10 @@ describe SlackService::IssueMessage, models: true do
args[:object_attributes][:action] = 'close'
args[:object_attributes][:state] = 'closed'
end
it 'returns a message regarding closing of issues' do
expect(subject.pretext). to eq(
'Test User closed <url|issue #100> in <somewhere.com|project_name>: '\
'*Issue title*')
'<somewhere.com|[project_name>] Issue <url|#100 Issue title> closed by Test User')
expect(subject.attachments).to be_empty
end
end
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