github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/severity/severity.go (about)

     1  package severity
     2  
     3  import (
     4  	"strings"
     5  )
     6  
     7  type Severity string
     8  
     9  const (
    10  	None     Severity = ""
    11  	Critical Severity = "CRITICAL"
    12  	High     Severity = "HIGH"
    13  	Medium   Severity = "MEDIUM"
    14  	Low      Severity = "LOW"
    15  )
    16  
    17  var ValidSeverity = []Severity{
    18  	Critical, High, Medium, Low,
    19  }
    20  
    21  func (s *Severity) IsValid() bool {
    22  	for _, severity := range ValidSeverity {
    23  		if severity == *s {
    24  			return true
    25  		}
    26  	}
    27  	return false
    28  }
    29  
    30  func (s *Severity) Valid() []Severity {
    31  	return ValidSeverity
    32  }
    33  
    34  func StringToSeverity(sev string) Severity {
    35  	s := strings.ToUpper(sev)
    36  	switch s {
    37  	case "CRITICAL", "HIGH", "MEDIUM", "LOW":
    38  		return Severity(s)
    39  	case "ERROR":
    40  		return High
    41  	case "WARNING":
    42  		return Medium
    43  	case "INFO":
    44  		return Low
    45  	default:
    46  		return None
    47  	}
    48  }