in internal/config/config.go [194:227]
func newFromFile(path string) (*Config, error) {
cfg := &Config{}
*cfg = DefaultConfig
cfg.RootDir = filepath.Dir(path)
configBytes, err := os.ReadFile(path)
if err != nil {
return nil, err
}
if err := yaml.Unmarshal(configBytes, cfg); err != nil {
return nil, err
}
if cfg.GitlabUrl != "" {
// This is only done for historic reasons, don't implement it for new config sources.
unescapedUrl, err := url.PathUnescape(cfg.GitlabUrl)
if err != nil {
return nil, err
}
cfg.GitlabUrl = unescapedUrl
}
if err := parseSecret(cfg); err != nil {
return nil, err
}
if len(cfg.LogFile) > 0 && cfg.LogFile[0] != '/' && cfg.RootDir != "" {
cfg.LogFile = filepath.Join(cfg.RootDir, cfg.LogFile)
}
return cfg, nil
}