Add lark type
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
This commit is contained in:
parent
dc0d0daa74
commit
4893803b24
|
|
@ -28,7 +28,7 @@ const (
|
||||||
// ProviderSpec defines the desired state of Provider
|
// ProviderSpec defines the desired state of Provider
|
||||||
type ProviderSpec struct {
|
type ProviderSpec struct {
|
||||||
// Type of provider
|
// Type of provider
|
||||||
// +kubebuilder:validation:Enum=slack;discord;msteams;rocket;generic;github;gitlab;bitbucket;azuredevops;googlechat;webex;sentry;azureeventhub;telegram
|
// +kubebuilder:validation:Enum=slack;discord;msteams;rocket;generic;github;gitlab;bitbucket;azuredevops;googlechat;webex;sentry;azureeventhub;telegram;lark
|
||||||
// +required
|
// +required
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
|
|
||||||
|
|
@ -78,6 +78,7 @@ const (
|
||||||
SentryProvider string = "sentry"
|
SentryProvider string = "sentry"
|
||||||
AzureEventHubProvider string = "azureeventhub"
|
AzureEventHubProvider string = "azureeventhub"
|
||||||
TelegramProvider string = "telegram"
|
TelegramProvider string = "telegram"
|
||||||
|
LarkProvider string = "lark"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProviderStatus defines the observed state of Provider
|
// ProviderStatus defines the observed state of Provider
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@ spec:
|
||||||
- sentry
|
- sentry
|
||||||
- azureeventhub
|
- azureeventhub
|
||||||
- telegram
|
- telegram
|
||||||
|
- lark
|
||||||
type: string
|
type: string
|
||||||
username:
|
username:
|
||||||
description: Bot username for this provider
|
description: Bot username for this provider
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ func (f Factory) Notifier(provider string) (Interface, error) {
|
||||||
n, err = NewAzureEventHub(f.URL, f.Token, f.Channel)
|
n, err = NewAzureEventHub(f.URL, f.Token, f.Channel)
|
||||||
case v1beta1.TelegramProvider:
|
case v1beta1.TelegramProvider:
|
||||||
n, err = NewTelegram(f.Channel, f.Token)
|
n, err = NewTelegram(f.Channel, f.Token)
|
||||||
|
case v1beta1.LarkProvider:
|
||||||
|
n = NewLark(f.URL)
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("provider %s not supported", provider)
|
err = fmt.Errorf("provider %s not supported", provider)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package notifier
|
||||||
|
|
||||||
|
import "github.com/fluxcd/pkg/runtime/events"
|
||||||
|
|
||||||
|
type Lark struct {
|
||||||
|
URL string
|
||||||
|
}
|
||||||
|
|
||||||
|
type LarkPayload struct {
|
||||||
|
MsgType string `json:"msg_type"`
|
||||||
|
Content LarkContent `json:"content"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type LarkContent struct {
|
||||||
|
Text string `json:"text"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewLark(address string) *Lark {
|
||||||
|
return &Lark{
|
||||||
|
URL: address,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *Lark) Post(event events.Event) error {
|
||||||
|
// Skip any update events
|
||||||
|
if isCommitStatus(event.Metadata, "update") {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
payload := LarkPayload{
|
||||||
|
MsgType: "text",
|
||||||
|
Content: LarkContent{
|
||||||
|
Text: event.Message,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return postMessage(l.URL, "", nil, payload)
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue