Class: Dependabot::Maven::Package::PackageDetailsFetcher

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/maven/package/package_details_fetcher.rb

Constant Summary collapse

META_DATE_XML =
T.let("maven-metadata.xml", String)
REPOSITORY_TYPE =
T.let("maven_repository", String)
URL_KEY =
T.let("url", String)
AUTH_HEADERS_KEY =
T.let("auth_headers", String)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, dependency_files:, credentials:) ⇒ PackageDetailsFetcher

rubocop:disable Metrics/AbcSize



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 34

def initialize(dependency:, dependency_files:, credentials:) # rubocop:disable Metrics/AbcSize
  @dependency = dependency
  @dependency_files = dependency_files
  @credentials = credentials

  @forbidden_urls = T.let([], T::Array[String])
  @pom_repository_details = T.let(nil, T.nilable(T::Array[T::Hash[String, T.untyped]]))
  @dependency_metadata = T.let({}, T::Hash[T.untyped, Nokogiri::XML::Document])
  @dependency_metadata_from_html = T.let({}, T::Hash[T.untyped, Nokogiri::HTML::Document])
  @repository_finder = T.let(nil, T.nilable(Maven::FileParser::RepositoriesFinder))
  @repositories = T.let(nil, T.nilable(T::Array[T::Hash[String, T.untyped]]))
  @released_check = T.let({}, T::Hash[Dependabot::Version, T::Boolean])
  @auth_headers_finder = T.let(nil, T.nilable(Utils::AuthHeadersFinder))
  @dependency_parts = T.let(nil, T.nilable([String, String]))
  @version_details = T.let(nil, T.nilable(T::Array[T::Hash[Symbol, T.untyped]]))
  @package_details = T.let(nil, T.nilable(Dependabot::Package::PackageDetails))
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



59
60
61
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 59

def credentials
  @credentials
end

#dependencyObject (readonly)

Returns the value of attribute dependency.



53
54
55
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 53

def dependency
  @dependency
end

#dependency_filesObject (readonly)

Returns the value of attribute dependency_files.



56
57
58
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 56

def dependency_files
  @dependency_files
end

#forbidden_urlsObject (readonly)

Returns the value of attribute forbidden_urls.



62
63
64
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 62

def forbidden_urls
  @forbidden_urls
end

Instance Method Details

#fetchObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 65

def fetch
  return @package_details if @package_details

  releases = versions.map do |version_details|
    Dependabot::Package::PackageRelease.new(
      version: version_details.fetch(:version),
      released_at: version_details.fetch(:release_date, nil),
      url: version_details.fetch(:source_url)
    )
  end

  @package_details = Dependabot::Package::PackageDetails.new(
    dependency: dependency,
    releases: releases
  )

  @package_details
end

#released?(version) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 90

def released?(version)
  released_check?(version)
end

#releasesObject



85
86
87
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 85

def releases
  fetch.releases
end