From 7a3ee1b557ab6fdfb0c96691b3059819021778d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Schl=C3=B6tterer?= <80917404+lschloetterer@users.noreply.github.com> Date: Thu, 8 Sep 2022 00:50:59 +0200 Subject: [PATCH] feat(alerting): add client config for telegram (#324) --- README.md | 1 + alerting/provider/telegram/telegram.go | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cb139c4f..60f43dae 100644 --- a/README.md +++ b/README.md @@ -779,6 +779,7 @@ Here's an example of what the notifications look like: | `alerting.telegram.token` | Telegram Bot Token | Required `""` | | `alerting.telegram.id` | Telegram User ID | Required `""` | | `alerting.telegram.api-url` | Telegram API URL | `https://api.telegram.org` | +| `alerting.telegram.client` | Client configuration.
See [Client configuration](#client-configuration). | `{}` | | `alerting.telegram.default-alert` | Default alert configuration.
See [Setting a default alert](#setting-a-default-alert) | N/A | ```yaml diff --git a/alerting/provider/telegram/telegram.go b/alerting/provider/telegram/telegram.go index 963b5f79..bfa5209d 100644 --- a/alerting/provider/telegram/telegram.go +++ b/alerting/provider/telegram/telegram.go @@ -19,12 +19,18 @@ type AlertProvider struct { ID string `yaml:"id"` APIURL string `yaml:"api-url"` + // ClientConfig is the configuration of the client used to communicate with the provider's target + ClientConfig *client.Config `yaml:"client,omitempty"` + // DefaultAlert is the default alert configuration to use for endpoints with an alert of the appropriate type DefaultAlert *alert.Alert `yaml:"default-alert,omitempty"` } // IsValid returns whether the provider's configuration is valid func (provider *AlertProvider) IsValid() bool { + if provider.ClientConfig == nil { + provider.ClientConfig = client.GetDefaultConfig() + } return len(provider.Token) > 0 && len(provider.ID) > 0 } @@ -40,7 +46,7 @@ func (provider *AlertProvider) Send(endpoint *core.Endpoint, alert *alert.Alert, return err } request.Header.Set("Content-Type", "application/json") - response, err := client.GetHTTPClient(nil).Do(request) + response, err := client.GetHTTPClient(provider.ClientConfig).Do(request) if err != nil { return err }