Class: Homebrew::Vulns::Match::Hit Private

Inherits:
Object
  • Object
show all
Defined in:
vulns/match.rb

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vulnerability:, evidence:) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Raises:

  • (ArgumentError)


79
80
81
82
83
84
85
86
87
88
# File 'vulns/match.rb', line 79

def initialize(vulnerability:, evidence:)
  raise ArgumentError, "Hit requires at least one Evidence" if evidence.empty?

  @vulnerability = vulnerability
  @evidence = T.let(
    evidence.map { |e| e.with_source(vulnerability) }
            .sort_by { |e| -STRATEGY_PRECISION.fetch(e.strategy) }.freeze,
    T::Array[Evidence],
  )
end

Instance Attribute Details

#evidenceArray<Evidence> (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



76
77
78
# File 'vulns/match.rb', line 76

def evidence
  @evidence
end

#vulnerabilityVulnerability (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



73
74
75
# File 'vulns/match.rb', line 73

def vulnerability
  @vulnerability
end

Instance Method Details

#canonical_idString

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



106
107
108
# File 'vulns/match.rb', line 106

def canonical_id
  vulnerability.cve_ids.min || vulnerability.id
end

#primary_evidenceEvidence

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



91
92
93
# File 'vulns/match.rb', line 91

def primary_evidence
  evidence.fetch(0)
end

#resourceString?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



101
102
103
# File 'vulns/match.rb', line 101

def resource
  primary_evidence.resource
end

#strategySymbol

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



96
97
98
# File 'vulns/match.rb', line 96

def strategy
  primary_evidence.strategy
end