Skip to content

Commit 385b5a0

Browse files
committed
add receivers to notification history
Signed-off-by: wanjunlei <wanjunlei@kubesphere.io>
1 parent 369e876 commit 385b5a0

File tree

21 files changed

+295
-150
lines changed

21 files changed

+295
-150
lines changed

apis/v2beta2/common.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package v2beta2
22

33
import (
4+
"fmt"
5+
"regexp"
6+
47
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
58
"k8s.io/apimachinery/pkg/labels"
6-
"regexp"
79
)
810

911
type LabelSelector struct {
@@ -112,3 +114,29 @@ func LabelMatchSelector(label map[string]string, selector *LabelSelector) bool {
112114

113115
return ok
114116
}
117+
118+
type ValueSource struct {
119+
// Selects a key of a secret in the pod's namespace
120+
// +optional
121+
SecretKeyRef *SecretKeySelector `json:"secretKeyRef,omitempty" protobuf:"bytes,4,opt,name=secretKeyRef"`
122+
}
123+
124+
type Credential struct {
125+
// +optional
126+
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
127+
ValueFrom *ValueSource `json:"valueFrom,omitempty" protobuf:"bytes,3,opt,name=valueFrom"`
128+
}
129+
130+
func (c *Credential) ToString() string {
131+
if len(c.Value) > 0 {
132+
return c.Value
133+
}
134+
135+
if c.ValueFrom != nil {
136+
if c.ValueFrom.SecretKeyRef != nil {
137+
return fmt.Sprintf("%s/%s/%s", c.ValueFrom.SecretKeyRef.Namespace, c.ValueFrom.SecretKeyRef.Name, c.ValueFrom.SecretKeyRef.Key)
138+
}
139+
}
140+
141+
return ""
142+
}

apis/v2beta2/notificationmanager_types.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,6 @@ type ConfigmapKeySelector struct {
5151
Key string `json:"key,omitempty" protobuf:"bytes,2,opt,name=key"`
5252
}
5353

54-
type ValueSource struct {
55-
// Selects a key of a secret in the pod's namespace
56-
// +optional
57-
SecretKeyRef *SecretKeySelector `json:"secretKeyRef,omitempty" protobuf:"bytes,4,opt,name=secretKeyRef"`
58-
}
59-
60-
type Credential struct {
61-
// +optional
62-
Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
63-
ValueFrom *ValueSource `json:"valueFrom,omitempty" protobuf:"bytes,3,opt,name=valueFrom"`
64-
}
65-
6654
// Sidecar defines a sidecar container which will be added to the notification manager deployment pod.
6755
type Sidecar struct {
6856
// The type of sidecar, it can be specified to any value.

config/samples/template.yaml

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,50 @@ data:
1818
{{ end }}
1919
{{ end }}{{- end }}
2020
21+
{{ define "nm.feishu.message" }}{{ if ne (len .Status) 0 }}[{{ .Status | translate }}] {{ end }}{{ . | message | escape }}{{ end }}
2122
{{ define "nm.feishu.post" }}
22-
en_us:
23-
content:
24-
{{ range .Alerts }}
25-
- - tag: text
26-
text: "{{ template "nm.default.message" . }}"{{ range .Labels.SortedPairs }}
27-
- - tag: text
28-
text: ' {{ .Name | translate }}: {{ .Value }}'
29-
{{- end }}
30-
{{ if ne (len .Annotations.SortedPairs.Filter) 0 }}
31-
{{ range .Annotations.SortedPairs.Filter "runbook_url" "message" "summary" "summary_cn" }}
32-
- - tag: text
33-
text: ' {{ .Name | translate }}: {{ .Value }}'
34-
{{- end }}
35-
{{- end }}
36-
- - tag: text
37-
text: ' '
38-
{{- end }}
23+
{
24+
"en_us": {
25+
"content": [
26+
{{- range $index, $alert := .Alerts }}
27+
{{- if ne $index 0 }}
28+
{{- "," }}
29+
{{- end }}
30+
[
31+
{
32+
"tag": "text",
33+
"text": "{{ template "nm.feishu.message" $alert }}"
34+
}
35+
],
36+
{{ range $alert.Labels.SortedPairs -}}
37+
[
38+
{
39+
"tag": "text",
40+
"text": " {{ .Name | translate }}: {{ .Value }}"
41+
}
42+
],
43+
{{ end -}}
44+
{{- if ne (len $alert.Annotations.SortedPairs.Filter) 0 -}}
45+
{{- range $alert.Annotations.SortedPairs.Filter "runbook_url" "message" "summary" "summary_cn" -}}
46+
[
47+
{
48+
"tag": "text",
49+
"text": " {{ .Name | translate }}: {{ .Value }}"
50+
}
51+
],
52+
{{ end -}}
53+
{{ end -}}
54+
[
55+
{
56+
"tag": "text",
57+
"text": " "
58+
}
59+
]
60+
{{- end }}
61+
]
62+
}
63+
}
3964
{{- end }}
40-
4165
{{ define "nm.feishu.text" }}{{ range .Alerts }}{{ template "nm.default.message" . }}{{ "\n" }}{{ range .Labels.SortedPairs }} {{ .Name | translate }}: {{ .Value }}{{ "\n" }}{{ end }}{{ range .Annotations.SortedPairs.Filter "runbook_url" "message" "summary" "summary_cn" }} {{ .Name | translate }}: {{ .Value }}{{ "\n" }}{{ end }}{{ "\n" }}{{ end }}{{- end }}
4266
4367
{{ define "nm.default.html" }}

go.mod

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ go 1.20
55
require (
66
github.com/alibabacloud-go/darabonba-openapi v0.1.5
77
github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.1
8-
github.com/aws/aws-sdk-go-v2 v1.16.4
8+
github.com/aws/aws-sdk-go-v2 v1.16.5
99
github.com/aws/aws-sdk-go-v2/config v1.15.7
1010
github.com/aws/aws-sdk-go-v2/credentials v1.12.2
1111
github.com/aws/aws-sdk-go-v2/service/sns v1.17.6
12-
github.com/duke-git/lancet/v2 v2.2.9
1312
github.com/emicklei/go-restful v2.16.0+incompatible
1413
github.com/go-chi/chi v4.0.3+incompatible
1514
github.com/go-kit/kit v0.9.0
@@ -27,7 +26,6 @@ require (
2726
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194
2827
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.0.194
2928
gopkg.in/alecthomas/kingpin.v2 v2.2.6
30-
gopkg.in/yaml.v2 v2.4.0
3129
k8s.io/api v0.28.0
3230
k8s.io/apimachinery v0.28.0
3331
k8s.io/client-go v0.28.0
@@ -51,7 +49,7 @@ require (
5149
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.5 // indirect
5250
github.com/aws/aws-sdk-go-v2/service/sso v1.11.5 // indirect
5351
github.com/aws/aws-sdk-go-v2/service/sts v1.16.6 // indirect
54-
github.com/aws/smithy-go v1.11.2 // indirect
52+
github.com/aws/smithy-go v1.11.3 // indirect
5553
github.com/beorn7/perks v1.0.1 // indirect
5654
github.com/cespare/xxhash/v2 v2.2.0 // indirect
5755
github.com/davecgh/go-spew v1.1.1 // indirect
@@ -89,19 +87,19 @@ require (
8987
go.uber.org/atomic v1.10.0 // indirect
9088
go.uber.org/multierr v1.11.0 // indirect
9189
go.uber.org/zap v1.24.0 // indirect
92-
golang.org/x/net v0.23.0 // indirect
90+
golang.org/x/net v0.33.0 // indirect
9391
golang.org/x/oauth2 v0.8.0 // indirect
94-
golang.org/x/sys v0.18.0 // indirect
95-
golang.org/x/term v0.18.0 // indirect
96-
golang.org/x/text v0.14.0 // indirect
92+
golang.org/x/sys v0.28.0 // indirect
93+
golang.org/x/term v0.27.0 // indirect
94+
golang.org/x/text v0.21.0 // indirect
9795
golang.org/x/time v0.3.0 // indirect
98-
golang.org/x/tools v0.12.0 // indirect
9996
gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect
10097
google.golang.org/appengine v1.6.7 // indirect
10198
google.golang.org/protobuf v1.33.0 // indirect
10299
gopkg.in/inf.v0 v0.9.1 // indirect
103100
gopkg.in/ini.v1 v1.56.0 // indirect
104101
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
102+
gopkg.in/yaml.v2 v2.4.0 // indirect
105103
gopkg.in/yaml.v3 v3.0.1 // indirect
106104
k8s.io/apiextensions-apiserver v0.28.0 // indirect
107105
k8s.io/component-base v0.28.0 // indirect
@@ -112,4 +110,7 @@ require (
112110
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
113111
)
114112

115-
replace github.com/miekg/dns v1.0.14 => github.com/miekg/dns v1.1.47
113+
replace (
114+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.5 => github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6
115+
github.com/miekg/dns v1.0.14 => github.com/miekg/dns v1.1.47
116+
)

go.sum

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ github.com/alibabacloud-go/tea-utils v1.3.9 h1:TtbzxS+BXrisA7wzbAMRtlU8A2eWLg0uf
2929
github.com/alibabacloud-go/tea-utils v1.3.9/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
3030
github.com/aliyun/credentials-go v1.1.2 h1:qU1vwGIBb3UJ8BwunHDRFtAhS6jnQLnde/yk0+Ih2GY=
3131
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
32-
github.com/aws/aws-sdk-go-v2 v1.16.4 h1:swQTEQUyJF/UkEA94/Ga55miiKFoXmm/Zd67XHgmjSg=
3332
github.com/aws/aws-sdk-go-v2 v1.16.4/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU=
33+
github.com/aws/aws-sdk-go-v2 v1.16.5 h1:Ah9h1TZD9E2S1LzHpViBO3Jz9FPL5+rmflmb8hXirtI=
34+
github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48=
3435
github.com/aws/aws-sdk-go-v2/config v1.15.7 h1:PrzhYjDpWnGSpjedmEapldQKPW4x8cCNzUI8XOho1CM=
3536
github.com/aws/aws-sdk-go-v2/config v1.15.7/go.mod h1:exERlvqx1OoUHrxQpMgrmfSW0H6B1+r3xziZD3bBXRg=
3637
github.com/aws/aws-sdk-go-v2/credentials v1.12.2 h1:tX4EHQFU4+O9at5QjnwIKb/Qgv7MbgbUNtqTRF0Vu2M=
@@ -39,8 +40,8 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.5 h1:YPxclBeE07HsLQE8vtjC8T2
3940
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.5/go.mod h1:WAPnuhG5IQ/i6DETFl5NmX3kKqCzw7aau9NHAGcm4QE=
4041
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.11 h1:gsqHplNh1DaQunEKZISK56wlpbCg0yKxNVvGWCFuF1k=
4142
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.11/go.mod h1:tmUB6jakq5DFNcXsXOA/ZQ7/C8VnSKYkx58OI7Fh79g=
42-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.5 h1:PLFj+M2PgIDHG//hw3T0O0KLI4itVtAjtxrZx4AHPLg=
43-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.5/go.mod h1:fV1AaS2gFc1tM0RCb015FJ0pvWVUfJZANzjwoO4YakM=
43+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6 h1:eeXdGVtXEe+2Jc49+/vAzna3FAQnUD4AagAw8tzbmfc=
44+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6/go.mod h1:FwpAKI+FBPIELJIdmQzlLtRe8LQSOreMcM2wBsPMvvc=
4445
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.12 h1:j0VqrjtgsY1Bx27tD0ysay36/K4kFMWRp9K3ieO9nLU=
4546
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.12/go.mod h1:00c7+ALdPh4YeEUPXJzyU0Yy01nPGOq2+9rUaz05z9g=
4647
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.5 h1:gRW1ZisKc93EWEORNJRvy/ZydF3o6xLSveJHdi1Oa0U=
@@ -51,8 +52,9 @@ github.com/aws/aws-sdk-go-v2/service/sso v1.11.5 h1:TfJ/zuOYvHnxkvohSwAF3Ppn9KT/
5152
github.com/aws/aws-sdk-go-v2/service/sso v1.11.5/go.mod h1:TFVe6Rr2joVLsYQ1ABACXgOC6lXip/qpX2x5jWg/A9w=
5253
github.com/aws/aws-sdk-go-v2/service/sts v1.16.6 h1:aYToU0/iazkMY67/BYLt3r6/LT/mUtarLAF5mGof1Kg=
5354
github.com/aws/aws-sdk-go-v2/service/sts v1.16.6/go.mod h1:rP1rEOKAGZoXp4iGDxSXFvODAtXpm34Egf0lL0eshaQ=
54-
github.com/aws/smithy-go v1.11.2 h1:eG/N+CcUMAvsdffgMvjMKwfyDzIkjM6pfxMJ8Mzc6mE=
5555
github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM=
56+
github.com/aws/smithy-go v1.11.3 h1:DQixirEFM9IaKxX1olZ3ke3nvxRS2xMDteKIDWxozW8=
57+
github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
5658
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
5759
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
5860
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -64,8 +66,6 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
6466
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6567
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
6668
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
67-
github.com/duke-git/lancet/v2 v2.2.9 h1:ik02ZrFg/OU0lduLfmNqo73mAhpY2a3Fm1RUFcoEtqk=
68-
github.com/duke-git/lancet/v2 v2.2.9/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc=
6969
github.com/emicklei/go-restful v2.16.0+incompatible h1:rgqiKNjTnFQA6kkhFe16D8epTksy9HQ1MyrbDXSdYhM=
7070
github.com/emicklei/go-restful v2.16.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
7171
github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
@@ -122,6 +122,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
122122
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
123123
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
124124
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
125+
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
125126
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
126127
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
127128
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -252,7 +253,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
252253
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
253254
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
254255
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
255-
golang.org/x/exp v0.0.0-20221208152030-732eee02a75a h1:4iLhBPcpqFmylhnkbY3W0ONLUYYkDAW9xMFLfxgsvCw=
256256
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
257257
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
258258
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -267,8 +267,8 @@ golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/
267267
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
268268
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
269269
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
270-
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
271-
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
270+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
271+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
272272
golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
273273
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
274274
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -292,16 +292,16 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w
292292
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
293293
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
294294
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
295-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
296-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
295+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
296+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
297297
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
298-
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
299-
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
298+
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
299+
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
300300
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
301301
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
302302
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
303-
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
304-
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
303+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
304+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
305305
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
306306
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
307307
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -313,8 +313,7 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
313313
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
314314
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
315315
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
316-
golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
317-
golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
316+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
318317
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
319318
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
320319
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

pkg/internal/dingtalk/types.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,23 @@ func (r *Receiver) Clone() internal.Receiver {
134134
}
135135
}
136136

137+
func (r *Receiver) GetChannels() (string, interface{}) {
138+
m := map[string]interface{}{}
139+
if r.ChatBot != nil {
140+
m["chatbot"] = r.ChatBot.Webhook.ToString()
141+
}
142+
143+
if len(r.ChatIDs) > 0 {
144+
m["chat"] = r.ChatIDs
145+
}
146+
147+
if len(m) == 0 {
148+
return "", nil
149+
} else {
150+
return r.GetType(), m
151+
}
152+
}
153+
137154
type Config struct {
138155
*internal.Common
139156
AppKey *v2beta2.Credential `json:"appKey,omitempty"`

pkg/internal/discord/types.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func NewReceiver(tenantID string, obj *v2beta2.Receiver) internal.Receiver {
4646
return r
4747
}
4848

49-
func (r *Receiver) SetConfig(c internal.Config) {
49+
func (r *Receiver) SetConfig(_ internal.Config) {
5050
return
5151
}
5252

@@ -72,11 +72,19 @@ func (r *Receiver) Clone() internal.Receiver {
7272
return out
7373
}
7474

75+
func (r *Receiver) GetChannels() (string, interface{}) {
76+
if r.Webhook == nil {
77+
return "", nil
78+
} else {
79+
return r.GetType(), r.Webhook.ToString()
80+
}
81+
}
82+
7583
type Config struct {
7684
*internal.Common
7785
}
7886

79-
func NewConfig(obj *v2beta2.Config) internal.Config {
87+
func NewConfig(_ *v2beta2.Config) internal.Config {
8088
return nil
8189
}
8290

pkg/internal/email/types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@ func (r *Receiver) Clone() internal.Receiver {
9393
}
9494
}
9595

96+
func (r *Receiver) GetChannels() (string, interface{}) {
97+
return r.GetType(), r.To
98+
}
99+
96100
type Config struct {
97101
*internal.Common
98102
From string `json:"from,omitempty"`

pkg/internal/feishu/types.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,27 @@ func (r *Receiver) Clone() internal.Receiver {
105105
}
106106
}
107107

108+
func (r *Receiver) GetChannels() (string, interface{}) {
109+
m := map[string]interface{}{}
110+
if r.ChatBot != nil {
111+
m["chatbot"] = r.ChatBot.Webhook.ToString()
112+
}
113+
114+
if len(r.User) > 0 {
115+
m["user"] = r.User
116+
}
117+
118+
if len(r.Department) > 0 {
119+
m["department"] = r.Department
120+
}
121+
122+
if len(m) == 0 {
123+
return "", nil
124+
} else {
125+
return r.GetType(), m
126+
}
127+
}
128+
108129
type Config struct {
109130
*internal.Common
110131
AppID *v2beta2.Credential `json:"appID,omitempty"`

pkg/internal/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ type Receiver interface {
1818
Clone() Receiver
1919
GetHash() string
2020
SetHash(h string)
21+
GetChannels() (string, interface{})
2122
}
2223

2324
type Config interface {

0 commit comments

Comments
 (0)