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
|
||||
type ProviderSpec struct {
|
||||
// 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
|
||||
Type string `json:"type"`
|
||||
|
||||
|
|
@ -78,6 +78,7 @@ const (
|
|||
SentryProvider string = "sentry"
|
||||
AzureEventHubProvider string = "azureeventhub"
|
||||
TelegramProvider string = "telegram"
|
||||
LarkProvider string = "lark"
|
||||
)
|
||||
|
||||
// ProviderStatus defines the observed state of Provider
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ spec:
|
|||
- sentry
|
||||
- azureeventhub
|
||||
- telegram
|
||||
- lark
|
||||
type: string
|
||||
username:
|
||||
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)
|
||||
case v1beta1.TelegramProvider:
|
||||
n, err = NewTelegram(f.Channel, f.Token)
|
||||
case v1beta1.LarkProvider:
|
||||
n = NewLark(f.URL)
|
||||
default:
|
||||
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