From dcce0076ee566e3d061a6522835a383a5dcbf075 Mon Sep 17 00:00:00 2001 From: Blesswin Samuel Date: Mon, 29 Apr 2024 09:58:58 +0530 Subject: [PATCH] Add ability to configure channel, username, icon emoji/url in slack cfg --- cmd/notification-slack/main.go | 18 +++++++++++++----- cmd/notification-slack/slack.yaml | 6 ++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/cmd/notification-slack/main.go b/cmd/notification-slack/main.go index 1e73d005f..fba1b33e3 100644 --- a/cmd/notification-slack/main.go +++ b/cmd/notification-slack/main.go @@ -14,9 +14,13 @@ import ( ) type PluginConfig struct { - Name string `yaml:"name"` - Webhook string `yaml:"webhook"` - LogLevel *string `yaml:"log_level"` + Name string `yaml:"name"` + Webhook string `yaml:"webhook"` + Channel string `yaml:"channel"` + Username string `yaml:"username"` + IconEmoji string `yaml:"icon_emoji"` + IconURL string `yaml:"icon_url"` + LogLevel *string `yaml:"log_level"` } type Notify struct { ConfigByName map[string]PluginConfig @@ -43,8 +47,12 @@ func (n *Notify) Notify(ctx context.Context, notification *protobufs.Notificatio logger.Info(fmt.Sprintf("found notify signal for %s config", notification.Name)) logger.Debug(fmt.Sprintf("posting to %s webhook, message %s", cfg.Webhook, notification.Text)) - err := slack.PostWebhookContext(ctx, n.ConfigByName[notification.Name].Webhook, &slack.WebhookMessage{ - Text: notification.Text, + err := slack.PostWebhookContext(ctx, cfg.Webhook, &slack.WebhookMessage{ + Text: notification.Text, + Channel: cfg.Channel, + Username: cfg.Username, + IconEmoji: cfg.IconEmoji, + IconURL: cfg.IconURL, }) if err != nil { logger.Error(err.Error()) diff --git a/cmd/notification-slack/slack.yaml b/cmd/notification-slack/slack.yaml index 4768e8697..d841ef076 100644 --- a/cmd/notification-slack/slack.yaml +++ b/cmd/notification-slack/slack.yaml @@ -28,6 +28,12 @@ format: | webhook: +# API request data as defined by the Slack webhook API. +channel: +username: +icon_emoji: +icon_url: + --- # type: slack