mirror of
https://github.com/containrrr/watchtower.git
synced 2026-01-16 22:15:28 +01:00
removes all code related to log levels and title, since that is not used anyway this also gets rid of slackrus dependency
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package notifications
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
shoutrrrTeams "github.com/containrrr/shoutrrr/pkg/services/teams"
|
|
t "github.com/containrrr/watchtower/pkg/types"
|
|
log "github.com/sirupsen/logrus"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
const (
|
|
msTeamsType = "msteams"
|
|
)
|
|
|
|
type msTeamsTypeNotifier struct {
|
|
webHookURL string
|
|
data bool
|
|
}
|
|
|
|
func newMsTeamsNotifier(cmd *cobra.Command) t.ConvertibleNotifier {
|
|
|
|
flags := cmd.Flags()
|
|
|
|
webHookURL, _ := flags.GetString("notification-msteams-hook")
|
|
if len(webHookURL) <= 0 {
|
|
log.Fatal("Required argument --notification-msteams-hook(cli) or WATCHTOWER_NOTIFICATION_MSTEAMS_HOOK_URL(env) is empty.")
|
|
}
|
|
|
|
withData, _ := flags.GetBool("notification-msteams-data")
|
|
n := &msTeamsTypeNotifier{
|
|
webHookURL: webHookURL,
|
|
data: withData,
|
|
}
|
|
|
|
return n
|
|
}
|
|
|
|
func (n *msTeamsTypeNotifier) GetURL(c *cobra.Command) (string, error) {
|
|
webhookURL, err := url.Parse(n.webHookURL)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
config, err := shoutrrrTeams.ConfigFromWebhookURL(*webhookURL)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
config.Color = ColorHex
|
|
|
|
return config.GetURL().String(), nil
|
|
}
|