Fix Discord Webhook URL for invalid template (#44763) (#44772)

This commit fixes an issue where an invalid template for Discord would change the Webhook URL to "" and cause "unsupported protocol scheme" errors.
This commit is contained in:
Grot (@grafanabot)
2022-02-02 14:48:27 +01:00
committed by GitHub
parent 60a25b4022
commit 9464ffa86b
2 changed files with 10 additions and 0 deletions
@@ -101,6 +101,7 @@ func (d DiscordNotifier) Notify(ctx context.Context, as ...*types.Alert) (bool,
u := tmpl(d.WebhookURL)
if tmplErr != nil {
d.log.Warn("failed to template Discord message", "err", tmplErr.Error())
return false, tmplErr
}
body, err := json.Marshal(bodyJSON)
@@ -3,6 +3,7 @@ package channels
import (
"context"
"encoding/json"
"errors"
"net/url"
"testing"
@@ -100,6 +101,14 @@ func TestDiscordNotifier(t *testing.T) {
settings: `{}`,
expInitError: `failed to validate receiver "discord_testing" of type "discord": could not find webhook url property in settings`,
},
{
name: "Invalid template returns error",
settings: `{
"url": "http://localhost",
"message": "{{ template \"invalid.template\" }}"
}`,
expMsgError: errors.New("template: :1:12: executing \"\" at <{{template \"invalid.template\"}}>: template \"invalid.template\" not defined"),
},
{
name: "Default config with one alert, use default discord username",
settings: `{