54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package monitor
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/wanghuiyt/ding"
|
||
"samba/pkg/ksync"
|
||
"samba/pkg/log"
|
||
"samba/pkg/task"
|
||
"samba/server/other/handler"
|
||
"strings"
|
||
"time"
|
||
)
|
||
|
||
type Ding struct {
|
||
*ding.Webhook
|
||
sendDing bool
|
||
}
|
||
|
||
func (d *Ding) SendMessageText(text string, at ...string) error {
|
||
log.Debug(fmt.Sprintf("发送钉钉消息:%s", text))
|
||
if !d.sendDing {
|
||
return nil
|
||
}
|
||
return d.Webhook.SendMessageText(text, at...)
|
||
}
|
||
|
||
func (d *Ding) Apply(t *task.Task) {
|
||
branch, _ := handler.GetEnv[string]("GitBranch")
|
||
if strings.Contains(strings.ToLower(branch), "release") {
|
||
d.sendDing = true
|
||
}
|
||
if !d.sendDing {
|
||
log.Debug(fmt.Sprintf("Task:%s 非release版本,不发送至钉钉", t.Name()))
|
||
}
|
||
|
||
d.Webhook = &ding.Webhook{
|
||
AccessToken: ksync.DingAccessToken,
|
||
Secret: ksync.DingSecret,
|
||
}
|
||
|
||
}
|
||
|
||
type TestTicker struct {
|
||
}
|
||
|
||
func (*TestTicker) Apply(t *task.Task) {
|
||
// FIXME for test
|
||
ksync.DingAccessToken = "e20c2217ae056af5d574d7a5c01340ce5d72eb77ae4ff05974e8c72f3a6b1ca2"
|
||
ksync.DingSecret = "SECfc662dd07db57dea77bd2e44798cb88d89fec9c6ced8207408fd9d7c1f377dfb"
|
||
|
||
log.Debug(fmt.Sprintf("任务 %s 测试ticker为10秒", t.Name()))
|
||
t.Ticker(10 * time.Second).Fixed()
|
||
}
|