Documentation
¶
Index ¶
Constants ¶
View Source
const FamedLabelKey = "famed"
FamedLabelKey is the label used in GitHub to tell our backend that this issue should be tracked by famed. // Todo: make it configurable.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { App struct { Host string `koanf:"host"` Port string `koanf:"port"` URL string `koanf:"url"` LogLevel log.Level `koanf:"loglevel"` } `koanf:"app"` DB struct { TimeOut time.Duration `koanf:"timeout"` URL string `koanf:"url"` Name string `koanf:"name"` } `koanf:"db"` NewRelic struct { Name string `koanf:"name"` Key string `koanf:"key"` Enabled bool `koanf:"enabled"` } `koanf:"newrelic"` // Scanners allows you to choose which scanners will be activated. If no scanners is enabled then the web handler will also be disabled Scanners struct { DockerHost string `koanf:"dockerhost"` DockerCacert string `koanf:"dockercacert"` DockerCert string `koanf:"dockercert"` DockerKey string `koanf:"dockerkey"` TestSSL bool `koanf:"testssl"` Slither bool `koanf:"slither"` Semgrep bool `koanf:"semgrep"` } `koanf:"scanners"` Email struct { URL string `koanf:"url"` } Github struct { Host string `koanf:"host"` Key string `koanf:"key"` KeyEnclave *memguard.Enclave WebhookSecret string `koanf:"webhooksecret"` AppID int64 `koanf:"appid"` BotLogin string `koanf:"botlogin"` } `koanf:"github"` Famed struct { Labels map[string]model.Label `koanf:"labels"` Rewards map[model.IssueSeverity]float64 `koanf:"rewards"` Currency string `koanf:"currency"` DaysToFix int `koanf:"daystofix"` UpdateFrequency int `koanf:"updatefrequency"` InstallationPRBranchName string `koanf:"installationPRBranchName"` ScannerWorkflowPath string `koanf:"scannerWorkflowPath"` PRAuthorEmail string `koanf:"prAuthorEmail"` } `koanf:"famed"` // TODO this should probably not be in memory RedTeamLogins map[string]string `koanf:"redteamlogins"` Admin struct { Username string `koanf:"username"` Password string `koanf:"password"` } `koanf:"admin"` }
Config is the complete representation of the configuration, it is authoritative on configuration names, hierarchy, structure and type.
func NewConfig ¶
NewConfig returns a fully initialized(? maybe not the best word) configuration. The configuration can be set and loaded from different sources. The following load order is used: Defaults values, which can be overridden by JSON config from XDG path, which can be overridden by dotenv file (./.env file), which can be overridden by environment variables.
Click to show internal directories.
Click to hide internal directories.