Commit fc62daeb authored by Kamil Trzciński's avatar Kamil Trzciński Committed by Alejandro Rodríguez

Merge branch 'fix-slack-pipeline-event' into 'master'

Fix pipeline author for Slack and use pipeline id for pipeline link

[Context](https://gitlab.slack.com/archives/runner-builds/p1479238493000018)

Pipeline Slack message:

>  gitlab-org/gitlab-ci-multi-runner: Pipeline 8bed2a3b of fix/handle-failed-state-while-patching-trace branch by  failed in 1389 seconds 

Quotes:

> @godfat Take a look at these notifications, they seems to be missing author and should probably use Pipeline ID instead of SHA

See merge request !7506
parent 2f0065b2
class SlackService class SlackService
class PipelineMessage < BaseMessage class PipelineMessage < BaseMessage
attr_reader :sha, :ref_type, :ref, :status, :project_name, :project_url, attr_reader :ref_type, :ref, :status, :project_name, :project_url,
:user_name, :duration, :pipeline_id :user_name, :duration, :pipeline_id
def initialize(data) def initialize(data)
pipeline_attributes = data[:object_attributes] pipeline_attributes = data[:object_attributes]
@sha = pipeline_attributes[:sha]
@ref_type = pipeline_attributes[:tag] ? 'tag' : 'branch' @ref_type = pipeline_attributes[:tag] ? 'tag' : 'branch'
@ref = pipeline_attributes[:ref] @ref = pipeline_attributes[:ref]
@status = pipeline_attributes[:status] @status = pipeline_attributes[:status]
...@@ -14,7 +13,7 @@ class SlackService ...@@ -14,7 +13,7 @@ class SlackService
@project_name = data[:project][:path_with_namespace] @project_name = data[:project][:path_with_namespace]
@project_url = data[:project][:web_url] @project_url = data[:project][:web_url]
@user_name = data[:commit] && data[:commit][:author_name] @user_name = data[:user] && data[:user][:name]
end end
def pretext def pretext
...@@ -73,7 +72,7 @@ class SlackService ...@@ -73,7 +72,7 @@ class SlackService
end end
def pipeline_link def pipeline_link
"[#{Commit.truncate_sha(sha)}](#{pipeline_url})" "[##{pipeline_id}](#{pipeline_url})"
end end
end end
end end
---
title: Fix pipeline author for Slack and use pipeline id for pipeline link
merge_request: 7506
author:
...@@ -15,7 +15,7 @@ describe SlackService::PipelineMessage do ...@@ -15,7 +15,7 @@ describe SlackService::PipelineMessage do
}, },
project: { path_with_namespace: 'project_name', project: { path_with_namespace: 'project_name',
web_url: 'example.gitlab.com' }, web_url: 'example.gitlab.com' },
commit: { author_name: 'hacker' } user: { name: 'hacker' }
} }
end end
...@@ -48,7 +48,7 @@ describe SlackService::PipelineMessage do ...@@ -48,7 +48,7 @@ describe SlackService::PipelineMessage do
def build_message(status_text = status) def build_message(status_text = status)
"<example.gitlab.com|project_name>:" \ "<example.gitlab.com|project_name>:" \
" Pipeline <example.gitlab.com/pipelines/123|97de212e>" \ " Pipeline <example.gitlab.com/pipelines/123|#123>" \
" of <example.gitlab.com/commits/develop|develop> branch" \ " of <example.gitlab.com/commits/develop|develop> branch" \
" by hacker #{status_text} in #{duration} #{'second'.pluralize(duration)}" " by hacker #{status_text} in #{duration} #{'second'.pluralize(duration)}"
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment