Class: Dependabot::Maven::UpdateChecker::VersionFinder

Inherits:
Package::PackageLatestVersionFinder
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/maven/update_checker/version_finder.rb

Constant Summary collapse

TYPE_SUFFICES =
%w(jre android java native_mt agp).freeze

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, cooldown_options: nil, raise_on_ignored: false) ⇒ VersionFinder

Returns a new instance of VersionFinder.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 30

def initialize(
  dependency:,
  dependency_files:,
  credentials:,
  ignored_versions:,
  security_advisories:,
  cooldown_options: nil,
  raise_on_ignored: false
)
  @forbidden_urls      = T.let([], T::Array[String])
  @dependency_metadata = T.let({}, T::Hash[T.untyped, Nokogiri::XML::Document])
  @auth_headers_finder = T.let(nil, T.nilable(Utils::AuthHeadersFinder))
  @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 = T.let(nil, T.nilable(T::Array[T::Hash[String, T.untyped]]))
  @released_check = T.let({}, T::Hash[Version, T::Boolean])
  @package_details_fetcher = T.let(nil, T.nilable(Package::PackageDetailsFetcher))
  @package_details = T.let(nil, T.nilable(Dependabot::Package::PackageDetails))
  super
end

Instance Method Details

#latest_version_detailsObject



62
63
64
65
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 62

def latest_version_details
  release = fetch_latest_release
  release&.version ? { version: release.version, source_url: release.url } : nil
end

#lowest_security_fix_version_detailsObject



68
69
70
71
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 68

def lowest_security_fix_version_details
  release = fetch_lowest_security_fix_release
  release&.version ? { version: release.version, source_url: release.url } : nil
end

#package_detailsObject



52
53
54
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 52

def package_details
  @package_details ||= package_details_fetcher.fetch
end

#releasesObject



57
58
59
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 57

def releases
  (package_details&.releases || []).reverse
end