diff --git a/pkg/config/severity.go b/pkg/config/severity.go index 49874c9a4c3a..3eeb80696020 100644 --- a/pkg/config/severity.go +++ b/pkg/config/severity.go @@ -20,6 +20,11 @@ func (s *Severity) Validate() error { } for i, rule := range s.Rules { + if s.Default == rule.Severity { + return fmt.Errorf("error in severity rule #%d: the default severity (%q) is the same as the rule severity, this rule can be removed", + i, s.Default) + } + if err := rule.Validate(); err != nil { return fmt.Errorf("error in severity rule #%d: %w", i, err) } diff --git a/pkg/config/severity_test.go b/pkg/config/severity_test.go index b7a98aea328d..db61c98ba029 100644 --- a/pkg/config/severity_test.go +++ b/pkg/config/severity_test.go @@ -79,6 +79,21 @@ func TestSeverity_Validate_error(t *testing.T) { }, expected: "error in severity rule #0: severity should be set", }, + { + desc: "same severity between default and rule", + severity: &Severity{ + Default: "high", + Rules: []SeverityRule{ + { + Severity: "high", + BaseRule: BaseRule{ + Path: "test", + }, + }, + }, + }, + expected: `error in severity rule #0: the default severity ("high") is the same as the rule severity, this rule can be removed`, + }, } for _, test := range testCases {