From 8a3e34234493dad6cf0599e574b29883be2ff8fe Mon Sep 17 00:00:00 2001 From: Tollef Fog Heen Date: Tue, 4 Jun 2019 10:05:25 +0200 Subject: [PATCH 1/2] 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 cde4769497..349bc28baf 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 e1eef365c4..d7bc5c0c51 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 8f4bf12bf7..b111647e65 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 f9f1cf9b80..dacc267e37 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. From 4944ee16879dd2d14e72feb8fbb6fe47235545b8 Mon Sep 17 00:00:00 2001 From: Luke Kysow <1034429+lkysow@users.noreply.github.com> Date: Wed, 5 Jun 2019 11:30:24 +0100 Subject: [PATCH 2/2] Add comment explaining . => / replace --- server/events/webhooks/slack_client.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/events/webhooks/slack_client.go b/server/events/webhooks/slack_client.go index d7bc5c0c51..eb8e8db381 100644 --- a/server/events/webhooks/slack_client.go +++ b/server/events/webhooks/slack_client.go @@ -99,6 +99,7 @@ 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 + // Since "." looks weird, replace it with "/" to make it clear this is the root. if directory == "." { directory = "/" }