Skip to content

Commit 956a922

Browse files
feat: check rule, formatter registered in config verify
1 parent c74af28 commit 956a922

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

config/config.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const (
1818
ConfFileName = "commitlint.yaml"
1919
)
2020

21-
// GetConfig returns conf
21+
// GetConfig returns parses config file and returns Config instance
2222
func GetConfig(flagConfPath string) (*lint.Config, error) {
2323
confFilePath, useDefault, err := GetConfigPath(flagConfPath)
2424
if err != nil {
@@ -77,7 +77,7 @@ func Parse(confPath string) (*lint.Config, error) {
7777

7878
err = Validate(conf)
7979
if err != nil {
80-
return nil, fmt.Errorf("config error: %w", err)
80+
return nil, fmt.Errorf("config: %w", err)
8181
}
8282
return conf, nil
8383
}
@@ -88,14 +88,25 @@ func Validate(conf *lint.Config) error {
8888
return errors.New("formatter is empty")
8989
}
9090

91-
// Check Severity Level of rule config
91+
_, ok := globalRegistry.GetFormatter(conf.Formatter)
92+
if !ok {
93+
return fmt.Errorf("unknown formatter '%s'", conf.Formatter)
94+
}
95+
9296
for ruleName, r := range conf.Rules {
97+
// Check Severity Level of rule config
9398
switch r.Severity {
9499
case lint.SeverityError:
95100
case lint.SeverityWarn:
96101
default:
97102
return fmt.Errorf("unknown severity level '%s' for rule '%s'", r.Severity, ruleName)
98103
}
104+
105+
// Check if rule is registered
106+
_, ok := globalRegistry.GetRule(ruleName)
107+
if !ok {
108+
return fmt.Errorf("unknown rule '%s'", ruleName)
109+
}
99110
}
100111

101112
return nil

0 commit comments

Comments
 (0)