* 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
 | 
						|
}
 |