* feat: Support Ubuntu21 * feat(report): Send report via Google Chat * feat(report): Send report via Google Chat * Snip too long message as (The rest is omitted). * sorry for mixed feat-ubuntu21 branch. exlucded it * append diff, attack vector and exploits info * add ServerName filter by regexp * rename variables and rewrite validators * fix renaming miss * fix renaming miss, again
33 lines
929 B
Go
33 lines
929 B
Go
package config
|
|
|
|
import (
|
|
"github.com/asaskevich/govalidator"
|
|
"golang.org/x/xerrors"
|
|
)
|
|
|
|
// GoogleChatConf is GoogleChat config
|
|
type GoogleChatConf struct {
|
|
WebHookURL string `valid:"url" json:"-" toml:"webHookURL,omitempty"`
|
|
SkipIfNoCve bool `valid:"type(bool)" json:"-" toml:"skipIfNoCve"`
|
|
ServerNameRegexp string `valid:"type(string)" json:"-" toml:"serverNameRegexp,omitempty"`
|
|
Enabled bool `valid:"type(bool)" json:"-" toml:"-"`
|
|
}
|
|
|
|
// Validate validates configuration
|
|
func (c *GoogleChatConf) Validate() (errs []error) {
|
|
if !c.Enabled {
|
|
return
|
|
}
|
|
if len(c.WebHookURL) == 0 {
|
|
errs = append(errs, xerrors.New("googleChatConf.webHookURL must not be empty"))
|
|
}
|
|
if !govalidator.IsRegex(c.ServerNameRegexp) {
|
|
errs = append(errs, xerrors.New("googleChatConf.serverNameRegexp must be regex"))
|
|
}
|
|
_, err := govalidator.ValidateStruct(c)
|
|
if err != nil {
|
|
errs = append(errs, err)
|
|
}
|
|
return
|
|
}
|