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

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

Constant Summary

Constants inherited from Shared::SharedPackageDetailsFetcher

Shared::SharedPackageDetailsFetcher::AUTH_HEADERS_KEY, Shared::SharedPackageDetailsFetcher::DEFAULT_CENTRAL_REPO_URL, Shared::SharedPackageDetailsFetcher::MAVEN_METADATA_XML, Shared::SharedPackageDetailsFetcher::REPOSITORY_TYPE, Shared::SharedPackageDetailsFetcher::URL_KEY

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Shared::SharedPackageDetailsFetcher

#auth_headers, #auth_headers_finder, #central_repo_urls, #check_response, #credentials_repository_details, #dependency_base_url, #dependency_files_url, #dependency_metadata, #dependency_metadata_from_html, #dependency_metadata_url, #dependency_parts, #extract_metadata_from_xml, #extract_version_details_from_html, #fetch_dependency_metadata, #fetch_dependency_metadata_from_html, #forbidden_urls, #handle_registry_error, #released?, #version_class, #versions, #versions_details_from_xml, #versions_details_hash_from_html

Constructor Details

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

Returns a new instance of PackageDetailsFetcher.



29
30
31
32
33
34
35
36
37
38
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 29

def initialize(dependency:, dependency_files:, credentials:)
  @dependency = T.let(dependency, Dependabot::Dependency)
  @dependency_files = T.let(dependency_files, T::Array[Dependabot::DependencyFile])
  @credentials = T.let(credentials, T::Array[Dependabot::Credential])

  @pom_repository_details = T.let(nil, T.nilable(T::Array[T::Hash[String, T.untyped]]))
  @repository_finder = T.let(nil, T.nilable(Maven::FileParser::RepositoriesFinder))
  @repositories_cache = T.let(nil, T.nilable(T::Array[T::Hash[String, T.untyped]]))
  @package_details = T.let(nil, T.nilable(Dependabot::Package::PackageDetails))
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



47
48
49
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 47

def credentials
  @credentials
end

#dependencyObject (readonly)

Returns the value of attribute dependency.



41
42
43
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 41

def dependency
  @dependency
end

#dependency_filesObject (readonly)

Returns the value of attribute dependency_files.



44
45
46
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 44

def dependency_files
  @dependency_files
end

Instance Method Details

#central_repo_urlObject



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

def central_repo_url
  repository_finder.central_repo_url
end

#fetchObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 50

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

#releasesObject



70
71
72
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 70

def releases
  fetch.releases
end

#repositoriesObject



76
77
78
79
80
81
82
83
84
85
86
# File 'lib/dependabot/maven/package/package_details_fetcher.rb', line 76

def repositories
  return @repositories_cache if @repositories_cache

  @repositories_cache = credentials_repository_details
  pom_repository_details.each do |repo|
    @repositories_cache << repo unless @repositories_cache.any? do |r|
      r[URL_KEY] == repo[URL_KEY]
    end
  end
  @repositories_cache
end