Skip to content

Commit 35dc4c7

Browse files
committed
provider/slack: set username and imageURI
1 parent 05e9b59 commit 35dc4c7

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

internal/check/checks.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ func mergeAlertConfigs(local, global config.Alert) config.Alert {
108108
out.Slack = &config.Slack{
109109
ApiToken: cmp.Or(local.Slack.ApiToken, global.Slack.ApiToken),
110110
ChannelID: cmp.Or(local.Slack.ChannelID, global.Slack.ChannelID),
111+
Username: cmp.Or(local.Slack.Username, global.Slack.Username),
112+
ImageURI: cmp.Or(local.Slack.ImageURI, global.Slack.ImageURI),
111113
}
112114
}
113115

internal/config/config.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,16 +142,24 @@ func ReadPagerDutyFromEnv() *PagerDuty {
142142
type Slack struct {
143143
ApiToken string
144144
ChannelID string
145+
146+
Username string
147+
ImageURI string
145148
}
146149

147150
func ReadSlackFromEnv() *Slack {
148151
apiToken := os.Getenv("DEADCHECK_SLACK_API_TOKEN")
149152
channelID := os.Getenv("DEADCHECK_SLACK_CHANNEL_ID")
150153

154+
username := os.Getenv("DEADCHECK_SLACK_USERNAME")
155+
imageURI := os.Getenv("DEADCHECK_SLACK_IMAGE_URI")
156+
151157
if apiToken != "" && channelID != "" {
152158
return &Slack{
153159
ApiToken: apiToken,
154160
ChannelID: channelID,
161+
Username: username,
162+
ImageURI: imageURI,
155163
}
156164
}
157165

internal/provider/slack/client.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package slack
22

33
import (
4+
"cmp"
45
"context"
56
"errors"
67
"fmt"
@@ -113,8 +114,12 @@ func (c *client) createSnoozedMessage(ctx context.Context, logger log.Logger, ch
113114
expectedCheckin := now.Add(wait)
114115
text := fmt.Sprintf("%s did not check-in, expected check-in at %v", check.ID, expectedCheckin.Format(time.RFC3339))
115116
opts := []slack.MsgOption{
117+
slack.MsgOptionUsername(cmp.Or(c.conf.Username, "deadcheck")),
116118
slack.MsgOptionText(text, false),
117119
}
120+
if c.conf.ImageURI != "" {
121+
opts = append(opts, slack.MsgOptionIconURL(c.conf.ImageURI))
122+
}
118123

119124
postAt := fmt.Sprintf("%d", scheduleTime.Add(wait).Unix())
120125
respChannel, scheduledMessageID, err := c.underlying.ScheduleMessageContext(ctx, c.conf.ChannelID, postAt, opts...)

0 commit comments

Comments
 (0)