Class: Homebrew::Vulns::Match::Hit Private
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
- #evidence ⇒ Array<Evidence> readonly private
- #vulnerability ⇒ Vulnerability readonly private
Instance Method Summary collapse
- #canonical_id ⇒ String private
- #identifiers ⇒ Array<String> private
- #initialize(vulnerability:, evidence:) ⇒ void constructor private
- #primary_evidence ⇒ Evidence private
- #resource ⇒ String? private
- #strategy ⇒ Symbol private
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.
83 84 85 86 87 88 89 90 91 92 |
# File 'vulns/match.rb', line 83 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
#evidence ⇒ Array<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.
80 81 82 |
# File 'vulns/match.rb', line 80 def evidence @evidence end |
#vulnerability ⇒ Vulnerability (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.
77 78 79 |
# File 'vulns/match.rb', line 77 def vulnerability @vulnerability end |
Instance Method Details
#canonical_id ⇒ String
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.
110 111 112 |
# File 'vulns/match.rb', line 110 def canonical_id vulnerability.cve_ids.min || vulnerability.id end |
#identifiers ⇒ Array<String>
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.
115 116 117 118 119 |
# File 'vulns/match.rb', line 115 def identifiers evidence.flat_map { |item| item.source_record&.identifiers || [] } .prepend(*vulnerability.identifiers) .uniq end |
#primary_evidence ⇒ Evidence
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.
95 96 97 |
# File 'vulns/match.rb', line 95 def primary_evidence evidence.fetch(0) end |
#resource ⇒ String?
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.
105 106 107 |
# File 'vulns/match.rb', line 105 def resource primary_evidence.resource end |
#strategy ⇒ Symbol
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.
100 101 102 |
# File 'vulns/match.rb', line 100 def strategy primary_evidence.strategy end |