feat: use gosec severities (#4470)

This commit is contained in:
Ludovic Fernandez 2024-03-09 14:05:16 +01:00 committed by GitHub
parent d06296eba4
commit 1cabafc3b6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -97,7 +97,7 @@ func runGoSec(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoS
issues := make([]goanalysis.Issue, 0, len(secIssues))
for _, i := range secIssues {
text := fmt.Sprintf("%s: %s", i.RuleID, i.What) // TODO: use severity and confidence
text := fmt.Sprintf("%s: %s", i.RuleID, i.What)
var r *result.Range
@ -118,6 +118,7 @@ func runGoSec(lintCtx *linter.Context, pass *analysis.Pass, settings *config.GoS
}
issues = append(issues, goanalysis.NewIssue(&result.Issue{
Severity: convertScoreToString(i.Severity),
Pos: token.Position{
Filename: i.File,
Line: line,
@ -149,6 +150,19 @@ func toGosecConfig(settings *config.GoSecSettings) gosec.Config {
return conf
}
func convertScoreToString(score issue.Score) string {
switch score {
case issue.Low:
return "low"
case issue.Medium:
return "medium"
case issue.High:
return "high"
default:
return ""
}
}
// based on https://github.com/securego/gosec/blob/47bfd4eb6fc7395940933388550b547538b4c946/config.go#L52-L62
func convertGosecGlobals(globalOptionFromConfig any, conf gosec.Config) {
globalOptionMap, ok := globalOptionFromConfig.(map[string]any)