Enable setting ThreadId for Telegram notifications (#3638)
* Enable setting ThreadId for telegram notifications Signed-off-by: Gokhan Sari <gokhan@sari.m --------- Signed-off-by: gotjosh <josue.abreu@gmail.com>
This commit is contained in:
parent
7aa3cde1af
commit
a9b5cb4351
|
@ -766,6 +766,7 @@ type TelegramConfig struct {
|
||||||
BotToken Secret `yaml:"bot_token,omitempty" json:"token,omitempty"`
|
BotToken Secret `yaml:"bot_token,omitempty" json:"token,omitempty"`
|
||||||
BotTokenFile string `yaml:"bot_token_file,omitempty" json:"token_file,omitempty"`
|
BotTokenFile string `yaml:"bot_token_file,omitempty" json:"token_file,omitempty"`
|
||||||
ChatID int64 `yaml:"chat_id,omitempty" json:"chat,omitempty"`
|
ChatID int64 `yaml:"chat_id,omitempty" json:"chat,omitempty"`
|
||||||
|
MessageThreadID int `yaml:"message_thread_id,omitempty" json:"message_thread_id,omitempty"`
|
||||||
Message string `yaml:"message,omitempty" json:"message,omitempty"`
|
Message string `yaml:"message,omitempty" json:"message,omitempty"`
|
||||||
DisableNotifications bool `yaml:"disable_notifications,omitempty" json:"disable_notifications,omitempty"`
|
DisableNotifications bool `yaml:"disable_notifications,omitempty" json:"disable_notifications,omitempty"`
|
||||||
ParseMode string `yaml:"parse_mode,omitempty" json:"parse_mode,omitempty"`
|
ParseMode string `yaml:"parse_mode,omitempty" json:"parse_mode,omitempty"`
|
||||||
|
|
|
@ -21,7 +21,6 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1046,6 +1045,14 @@ bot_token_file: ''
|
||||||
in: `
|
in: `
|
||||||
bot_token: xyz
|
bot_token: xyz
|
||||||
chat_id: 123
|
chat_id: 123
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "with bot_token, chat_id and message_thread_id set - it succeeds",
|
||||||
|
in: `
|
||||||
|
bot_token: xyz
|
||||||
|
chat_id: 123
|
||||||
|
message_thread_id: 456
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1308,6 +1308,9 @@ attributes:
|
||||||
# ID of the chat where to send the messages.
|
# ID of the chat where to send the messages.
|
||||||
[ chat_id: <int> ]
|
[ chat_id: <int> ]
|
||||||
|
|
||||||
|
# Optional ID of the message thread where to send the messages.
|
||||||
|
[ message_thread_id: <int> ]
|
||||||
|
|
||||||
# Message template.
|
# Message template.
|
||||||
[ message: <tmpl_string> default = '{{ template "telegram.default.message" .}}' ]
|
[ message: <tmpl_string> default = '{{ template "telegram.default.message" .}}' ]
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,7 @@ func (n *Notifier) Notify(ctx context.Context, alert ...*types.Alert) (bool, err
|
||||||
message, err := n.client.Send(telebot.ChatID(n.conf.ChatID), messageText, &telebot.SendOptions{
|
message, err := n.client.Send(telebot.ChatID(n.conf.ChatID), messageText, &telebot.SendOptions{
|
||||||
DisableNotification: n.conf.DisableNotifications,
|
DisableNotification: n.conf.DisableNotifications,
|
||||||
DisableWebPagePreview: true,
|
DisableWebPagePreview: true,
|
||||||
|
ThreadID: n.conf.MessageThreadID,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return true, err
|
return true, err
|
||||||
|
|
|
@ -46,6 +46,7 @@ receivers:
|
||||||
telegram_configs:
|
telegram_configs:
|
||||||
- chat_id: 1234
|
- chat_id: 1234
|
||||||
bot_token: secret
|
bot_token: secret
|
||||||
|
message_thread_id: 1357
|
||||||
`
|
`
|
||||||
var c config.Config
|
var c config.Config
|
||||||
err := yaml.Unmarshal([]byte(in), &c)
|
err := yaml.Unmarshal([]byte(in), &c)
|
||||||
|
@ -57,6 +58,7 @@ receivers:
|
||||||
require.Equal(t, "https://api.telegram.org", c.Receivers[0].TelegramConfigs[0].APIUrl.String())
|
require.Equal(t, "https://api.telegram.org", c.Receivers[0].TelegramConfigs[0].APIUrl.String())
|
||||||
require.Equal(t, config.Secret("secret"), c.Receivers[0].TelegramConfigs[0].BotToken)
|
require.Equal(t, config.Secret("secret"), c.Receivers[0].TelegramConfigs[0].BotToken)
|
||||||
require.Equal(t, int64(1234), c.Receivers[0].TelegramConfigs[0].ChatID)
|
require.Equal(t, int64(1234), c.Receivers[0].TelegramConfigs[0].ChatID)
|
||||||
|
require.Equal(t, 1357, c.Receivers[0].TelegramConfigs[0].MessageThreadID)
|
||||||
require.Equal(t, "HTML", c.Receivers[0].TelegramConfigs[0].ParseMode)
|
require.Equal(t, "HTML", c.Receivers[0].TelegramConfigs[0].ParseMode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue