From 8a3e34234493dad6cf0599e574b29883be2ff8fe Mon Sep 17 00:00:00 2001 From: Tollef Fog Heen Date: Tue, 4 Jun 2019 10:05:25 +0200 Subject: [PATCH] Include directory in slack webhook message Fixes: https://github.com/runatlantis/atlantis/issues/660 --- server/events/project_command_runner.go | 1 + server/events/webhooks/slack_client.go | 10 ++++++++++ server/events/webhooks/slack_client_test.go | 10 ++++++++++ server/events/webhooks/webhooks.go | 1 + 4 files changed, 22 insertions(+) diff --git a/server/events/project_command_runner.go b/server/events/project_command_runner.go index cde476949..349bc28ba 100644 --- a/server/events/project_command_runner.go +++ b/server/events/project_command_runner.go @@ -240,6 +240,7 @@ func (p *DefaultProjectCommandRunner) doApply(ctx models.ProjectCommandContext) Repo: ctx.BaseRepo, Pull: ctx.Pull, Success: err == nil, + Directory: ctx.RepoRelDir, }) if err != nil { return "", "", fmt.Errorf("%s\n%s", err, strings.Join(outputs, "\n")) diff --git a/server/events/webhooks/slack_client.go b/server/events/webhooks/slack_client.go index e1eef365c..d7bc5c0c5 100644 --- a/server/events/webhooks/slack_client.go +++ b/server/events/webhooks/slack_client.go @@ -98,6 +98,11 @@ func (d *DefaultSlackClient) createAttachments(applyResult ApplyResult) []slack. } text := fmt.Sprintf("Apply %s for <%s|%s>", successWord, applyResult.Pull.URL, applyResult.Repo.FullName) + directory := applyResult.Directory + if directory == "." { + directory = "/" + } + attachment := slack.Attachment{ Color: colour, Text: text, @@ -112,6 +117,11 @@ func (d *DefaultSlackClient) createAttachments(applyResult ApplyResult) []slack. Value: applyResult.User.Username, Short: true, }, + { + Title: "Directory", + Value: directory, + Short: true, + }, }, } return []slack.Attachment{attachment} diff --git a/server/events/webhooks/slack_client_test.go b/server/events/webhooks/slack_client_test.go index 8f4bf12bf..b111647e6 100644 --- a/server/events/webhooks/slack_client_test.go +++ b/server/events/webhooks/slack_client_test.go @@ -109,6 +109,11 @@ func TestPostMessage_Success(t *testing.T) { Value: result.User.Username, Short: true, }, + { + Title: "Directory", + Value: result.Directory, + Short: true, + }, }, }} expParams.AsUser = false @@ -148,6 +153,11 @@ func TestPostMessage_Error(t *testing.T) { Value: result.User.Username, Short: true, }, + { + Title: "Directory", + Value: result.Directory, + Short: true, + }, }, }} expParams.AsUser = false diff --git a/server/events/webhooks/webhooks.go b/server/events/webhooks/webhooks.go index f9f1cf9b8..dacc267e3 100644 --- a/server/events/webhooks/webhooks.go +++ b/server/events/webhooks/webhooks.go @@ -41,6 +41,7 @@ type ApplyResult struct { Pull models.PullRequest User models.User Success bool + Directory string } // MultiWebhookSender sends multiple webhooks for each one it's configured for.