Documentation
¶
Index ¶
- Constants
- Variables
- func CompareSeverity(severity1, severity2 Severity) int
- func CreateSeverityRating(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus, ...) cyclonedx.VulnerabilityRating
- func GetAsDetails(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus, ...) formats.SeverityDetails
- func GetCvssScore(cvssScore string) *float64
- func GetSeverityIcon(severity Severity) string
- func GetSeverityPriority(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) int
- func GetSeverityScore(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) float32
- func GetSeverityScoreFloat64(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) *float64
- func SeverityToCycloneDxSeverity(severity Severity) cyclonedx.Severity
- type SarifSeverityLevel
- type Severity
- func CycloneDxSeverityToSeverity(severity cyclonedx.Severity) Severity
- func GetSeverity(severity string) Severity
- func MostSevereSeverity(severities ...Severity) Severity
- func ParseSeverity(severity string, sarifSeverity bool) (parsed Severity, err error)
- func ParseToSeverity(severity string) (parsed Severity, err error)
- type SeverityDetails
Constants ¶
View Source
const ( MinCveScore float32 = 0.0 MaxCveScore float32 = 10.0 // When parsing Sarif level to severity, // If the level is not provided, the value is defaulted to be 'Medium' SeverityDefaultValue = Medium SarifSeverityRuleProperty = "security-severity" )
Variables ¶
View Source
var Severities = map[Severity]map[jasutils.ApplicabilityStatus]*SeverityDetails{ Critical: { jasutils.Applicable: &SeverityDetails{Priority: 30, Score: MaxCveScore, Emoji: "💀", style: color.New(color.BgLightRed, color.LightWhite)}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 29, Score: MaxCveScore, Emoji: "💀", style: color.New(color.BgLightRed, color.LightWhite)}, jasutils.MissingContext: &SeverityDetails{Priority: 28, Score: MaxCveScore, Emoji: "💀", style: color.New(color.BgLightRed, color.LightWhite)}, jasutils.NotCovered: &SeverityDetails{Priority: 27, Score: MaxCveScore, Emoji: "💀", style: color.New(color.BgLightRed, color.LightWhite)}, jasutils.NotApplicable: &SeverityDetails{Priority: 6, Score: MaxCveScore, Emoji: "💀", style: color.New(color.Gray)}, }, High: { jasutils.Applicable: &SeverityDetails{Priority: 26, Score: 8.9, Emoji: "🔥", style: color.New(color.Red)}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 25, Score: 8.9, Emoji: "🔥", style: color.New(color.Red)}, jasutils.MissingContext: &SeverityDetails{Priority: 24, Score: 8.9, Emoji: "🔥", style: color.New(color.Red)}, jasutils.NotCovered: &SeverityDetails{Priority: 23, Score: 8.9, Emoji: "🔥", style: color.New(color.Red)}, jasutils.NotApplicable: &SeverityDetails{Priority: 5, Score: 8.9, Emoji: "🔥", style: color.New(color.Gray)}, }, Medium: { jasutils.Applicable: &SeverityDetails{Priority: 22, Score: 6.9, Emoji: "🎃", style: color.New(color.Yellow)}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 21, Score: 6.9, Emoji: "🎃", style: color.New(color.Yellow)}, jasutils.MissingContext: &SeverityDetails{Priority: 20, Score: 6.9, Emoji: "🎃", style: color.New(color.Yellow)}, jasutils.NotCovered: &SeverityDetails{Priority: 19, Score: 6.9, Emoji: "🎃", style: color.New(color.Yellow)}, jasutils.NotApplicable: &SeverityDetails{Priority: 4, Score: 6.9, Emoji: "🎃", style: color.New(color.Gray)}, }, Low: { jasutils.Applicable: &SeverityDetails{Priority: 18, Score: 3.9, Emoji: "👻"}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 17, Score: 3.9, Emoji: "👻"}, jasutils.MissingContext: &SeverityDetails{Priority: 16, Score: 3.9, Emoji: "👻"}, jasutils.NotCovered: &SeverityDetails{Priority: 15, Score: 3.9, Emoji: "👻"}, jasutils.NotApplicable: &SeverityDetails{Priority: 3, Score: 3.9, Emoji: "👻", style: color.New(color.Gray)}, }, Information: { jasutils.Applicable: &SeverityDetails{Priority: 14, Score: MinCveScore, Emoji: "ℹ️", style: color.New(color.Blue)}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 13, Score: MinCveScore, Emoji: "ℹ️", style: color.New(color.Blue)}, jasutils.MissingContext: &SeverityDetails{Priority: 12, Score: MinCveScore, Emoji: "ℹ️", style: color.New(color.Blue)}, jasutils.NotCovered: &SeverityDetails{Priority: 11, Score: MinCveScore, Emoji: "ℹ️", style: color.New(color.Blue)}, jasutils.NotApplicable: &SeverityDetails{Priority: 2, Score: MinCveScore, Emoji: "ℹ️", style: color.New(color.Gray)}, }, Unknown: { jasutils.Applicable: &SeverityDetails{Priority: 10, Score: MinCveScore, Emoji: "😐"}, jasutils.ApplicabilityUndetermined: &SeverityDetails{Priority: 9, Score: MinCveScore, Emoji: "😐"}, jasutils.MissingContext: &SeverityDetails{Priority: 8, Score: MinCveScore, Emoji: "😐"}, jasutils.NotCovered: &SeverityDetails{Priority: 7, Score: MinCveScore, Emoji: "😐"}, jasutils.NotApplicable: &SeverityDetails{Priority: 1, Score: MinCveScore, Emoji: "😐", style: color.New(color.Gray)}, }, }
Functions ¶
func CompareSeverity ¶
CompareSeverity compares two severities and returns the difference in priority If severity1 is more severe than severity2, the result will be positive
func CreateSeverityRating ¶ added in v1.20.0
func CreateSeverityRating(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus, service *cyclonedx.Service) cyclonedx.VulnerabilityRating
func GetAsDetails ¶
func GetAsDetails(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus, pretty bool) formats.SeverityDetails
func GetCvssScore ¶ added in v1.20.0
func GetSeverityIcon ¶ added in v1.7.2
func GetSeverityPriority ¶
func GetSeverityPriority(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) int
func GetSeverityScore ¶
func GetSeverityScore(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) float32
func GetSeverityScoreFloat64 ¶ added in v1.20.0
func GetSeverityScoreFloat64(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) *float64
func SeverityToCycloneDxSeverity ¶ added in v1.20.0
func SeverityToCycloneDxSeverity(severity Severity) cyclonedx.Severity
Types ¶
type SarifSeverityLevel ¶
type SarifSeverityLevel string
const ( LevelError SarifSeverityLevel = "error" LevelWarning SarifSeverityLevel = "warning" LevelInfo SarifSeverityLevel = "info" LevelNote SarifSeverityLevel = "note" LevelNone SarifSeverityLevel = "none" )
func GetSarifSeverityLevel ¶
func GetSarifSeverityLevel(severity string) SarifSeverityLevel
func ParseToSarifSeverityLevel ¶
func ParseToSarifSeverityLevel(sarifSeverity string) (parsed SarifSeverityLevel, err error)
func SeverityToSarifSeverityLevel ¶
func SeverityToSarifSeverityLevel(severity Severity) SarifSeverityLevel
func (SarifSeverityLevel) String ¶
func (s SarifSeverityLevel) String() string
type Severity ¶
type Severity string
func CycloneDxSeverityToSeverity ¶ added in v1.20.0
func CycloneDxSeverityToSeverity(severity cyclonedx.Severity) Severity
func GetSeverity ¶
func MostSevereSeverity ¶ added in v1.20.0
func ParseSeverity ¶
func ParseToSeverity ¶
type SeverityDetails ¶
type SeverityDetails struct { Priority int // for GitHub Security Alerts Score float32 // Pretty format Emoji string // contains filtered or unexported fields }
func GetSeverityDetails ¶
func GetSeverityDetails(severity Severity, applicabilityStatus jasutils.ApplicabilityStatus) *SeverityDetails
func ParseForDetails ¶
func ParseForDetails(severity string, sarifSeverity bool, applicabilityStatus jasutils.ApplicabilityStatus) (details *SeverityDetails, err error)
func (SeverityDetails) ToDetails ¶
func (sd SeverityDetails) ToDetails(severity Severity, pretty bool) formats.SeverityDetails
Click to show internal directories.
Click to hide internal directories.