mirror of
https://github.com/containrrr/watchtower.git
synced 2025-12-16 23:20:12 +01:00
remove unrelated actions/notify_slack.go file
This commit is contained in:
parent
97d108f415
commit
ea76f90e0d
1 changed files with 0 additions and 92 deletions
|
|
@ -1,92 +0,0 @@
|
||||||
package actions
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/mozillazg/request"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SlackNotifier is used to make the https requests to a specified slack
|
|
||||||
// webhook URL
|
|
||||||
type SlackNotifier struct {
|
|
||||||
slackURL string
|
|
||||||
identity string
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
slackMessageStartup = "Watchtower startup"
|
|
||||||
slackMessageError = "Some errors while checking and redeployment (Please check logs):"
|
|
||||||
slackMessageSuccess = "Successfully redeployed images:"
|
|
||||||
)
|
|
||||||
|
|
||||||
// NewSlackNotifier instantiates a new SlackNotifier with an URL and an identifier which will
|
|
||||||
// be prepended to each message it sends
|
|
||||||
func NewSlackNotifier(slackURL, identity string) *SlackNotifier {
|
|
||||||
identity = strings.Trim(identity, " ")
|
|
||||||
|
|
||||||
if len(identity) != 0 {
|
|
||||||
identity = fmt.Sprintf("[%s]: ", identity)
|
|
||||||
}
|
|
||||||
|
|
||||||
return &SlackNotifier{
|
|
||||||
slackURL: slackURL,
|
|
||||||
identity: identity,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s SlackNotifier) sendNotification(json map[string]interface{}) {
|
|
||||||
c := new(http.Client)
|
|
||||||
req := request.NewRequest(c)
|
|
||||||
req.Json = json
|
|
||||||
_, err := req.Post(s.slackURL)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotifyStartup sends a startup message to slack
|
|
||||||
func (s SlackNotifier) NotifyStartup() {
|
|
||||||
s.sendNotification(map[string]interface{}{
|
|
||||||
"text": fmt.Sprintf("%s%s", s.identity, slackMessageStartup),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func buildAttachment(items []string, title, color string) map[string]interface{} {
|
|
||||||
|
|
||||||
var fields []map[string]string
|
|
||||||
|
|
||||||
for _, item := range items {
|
|
||||||
fields = append(fields, map[string]string{"value": item, "short": "false"})
|
|
||||||
}
|
|
||||||
|
|
||||||
return map[string]interface{}{
|
|
||||||
"fallback": title + strings.Join(items, ", "),
|
|
||||||
"color": color,
|
|
||||||
"title": title,
|
|
||||||
"fields": fields,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// NotifyContainerUpdate sends a Message after updating containers which yielded either success or errors or both
|
|
||||||
func (s SlackNotifier) NotifyContainerUpdate(successfulContainers, errorMessages []string) {
|
|
||||||
|
|
||||||
var attachments []map[string]interface{}
|
|
||||||
|
|
||||||
if len(successfulContainers) != 0 {
|
|
||||||
attachments = append(attachments, buildAttachment(successfulContainers, slackMessageSuccess, "good"))
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(errorMessages) != 0 {
|
|
||||||
attachments = append(attachments, buildAttachment(errorMessages, slackMessageError, "danger"))
|
|
||||||
}
|
|
||||||
|
|
||||||
// add a pretext to the first attachment
|
|
||||||
attachments[0]["pretext"] = s.identity
|
|
||||||
|
|
||||||
s.sendNotification(map[string]interface{}{
|
|
||||||
"attachments": attachments,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue