Class: Dependabot::Bazel::FileParser

Inherits:
FileParsers::Base
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/bazel/file_parser.rb,
lib/dependabot/bazel/file_parser/starlark_parser.rb

Defined Under Namespace

Classes: StarlarkParser

Constant Summary collapse

REPOSITORY_REFERENCE =
%r{@([^/]+)}
DEPS_REGEX =
/deps\s*=\s*\[\s*([^\]]+)\]/mx
GITHUB_ARCHIVE_PATTERN =
%r{
  github\.com/[^/]+/[^/]+/archive/  # GitHub archive path
  (?:v?([^/]+))                     # Capture version (with optional 'v' prefix)
  \.(?:tar\.gz|tar\.bz2|zip)$       # Archive extension
}x
GITHUB_RELEASE_PATTERN =
%r{
  github\.com/[^/]+/[^/]+/releases/download/  # GitHub releases path
  (?:v?([^/]+))/                              # Capture version (with optional 'v' prefix)
}x
GENERIC_VERSION_PATTERN =
%r{
  /(?:v?([0-9]+(?:\.[0-9]+)*(?:[+-][^/]*)?))  # Capture semantic version
  (?:\.tar\.gz|\.zip|$)                       # Optional archive extension or end
}x

Instance Method Summary collapse

Instance Method Details

#ecosystemObject



55
56
57
58
59
60
61
62
63
64
# File 'lib/dependabot/bazel/file_parser.rb', line 55

def ecosystem
  @ecosystem ||= T.let(
    Ecosystem.new(
      name: ECOSYSTEM,
      package_manager: package_manager,
      language: language
    ),
    T.nilable(Ecosystem)
  )
end

#parseObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/dependabot/bazel/file_parser.rb', line 43

def parse
  dependency_set = DependencySet.new
  dependency_set += module_dependencies
  dependency_set += workspace_dependencies
  dependency_set += build_dependencies

  dependencies = dependency_set.dependencies

  dependencies.uniq { |dep| [dep.name, dep.version] }
end