Class: Gitlab::Ci::Reports::Sbom::DependencyAdjacencyList

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/ci/reports/sbom/dependency_adjacency_list.rb

Instance Method Summary collapse

Constructor Details

#initializeDependencyAdjacencyList

Returns a new instance of DependencyAdjacencyList.



8
9
10
11
# File 'lib/gitlab/ci/reports/sbom/dependency_adjacency_list.rb', line 8

def initialize
  @adjacency_list = Hash.new { |hash, key| hash[key] = [] }
  @component_info = {}
end

Instance Method Details

#add_component_info(ref, name, version) ⇒ Object



17
18
19
# File 'lib/gitlab/ci/reports/sbom/dependency_adjacency_list.rb', line 17

def add_component_info(ref, name, version)
  component_info[ref] = { name: name, version: version }
end

#add_edge(parent, child) ⇒ Object



13
14
15
# File 'lib/gitlab/ci/reports/sbom/dependency_adjacency_list.rb', line 13

def add_edge(parent, child)
  adjacency_list[child] << parent
end

#ancestors_for(child) ⇒ Object



21
22
23
24
25
# File 'lib/gitlab/ci/reports/sbom/dependency_adjacency_list.rb', line 21

def ancestors_for(child)
  ancestors_ref_for(child).filter_map do |ancestor_ref|
    component_info[ancestor_ref]
  end
end