Class: Dependabot::FileParsers::Go::Modules::GoModParser

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/file_parsers/go/modules/go_mod_parser.rb

Constant Summary collapse

GIT_VERSION_REGEX =
/^v\d+\.\d+\.\d+-.*-(?<sha>[0-9a-f]{12})$/.freeze

Instance Method Summary collapse

Constructor Details

#initialize(dependency_files:, credentials:) ⇒ GoModParser

Returns a new instance of GoModParser.



17
18
19
20
# File 'lib/dependabot/file_parsers/go/modules/go_mod_parser.rb', line 17

def initialize(dependency_files:, credentials:)
  @dependency_files = dependency_files
  @credentials = credentials
end

Instance Method Details

#dependency_setObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dependabot/file_parsers/go/modules/go_mod_parser.rb', line 22

def dependency_set
  dependencies = Dependabot::FileParsers::Base::DependencySet.new

  i = 0
  chunks = module_info(go_mod).lines.
           group_by { |line| line == "{\n" ? i += 1 : i }
  deps = chunks.values.map { |chunk| JSON.parse(chunk.join) }

  deps.each do |dep|
    # The project itself appears in this list as "Main"
    next if dep["Main"]

    dependency = dependency_from_details(dep)
    dependencies << dependency if dependency
  end

  dependencies
end