Class: Dependabot::Package::PackageLatestVersionFinder

Inherits:
Object
  • Object
show all
Extended by:
T::Helpers, T::Sig
Defined in:
lib/dependabot/package/package_latest_version_finder.rb

Overview

rubocop:disable Metrics/ClassLength

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, cooldown_options: nil, raise_on_ignored: false, options: {}) ⇒ PackageLatestVersionFinder

Returns a new instance of PackageLatestVersionFinder.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 58

def initialize(
  dependency:,
  dependency_files:,
  credentials:,
  ignored_versions:,
  security_advisories:,
  cooldown_options: nil,
  raise_on_ignored: false,
  options: {}
)
  @dependency          = dependency
  @dependency_files    = dependency_files
  @credentials         = credentials
  @ignored_versions    = ignored_versions
  @security_advisories = security_advisories
  @cooldown_options = cooldown_options
  @raise_on_ignored    = raise_on_ignored
  # It can be used by sub classes to pass options to the registry client
  @options             = options

  @latest_version = T.let(nil, T.nilable(Dependabot::Version))
  @latest_release = T.let(nil, T.nilable(Dependabot::Package::PackageRelease))
  @latest_version_with_no_unlock = T.let(nil, T.nilable(Dependabot::Version))
  @lowest_security_fix_version = T.let(nil, T.nilable(Dependabot::Version))
  @package_details = T.let(nil, T.nilable(Dependabot::Package::PackageDetails))
  cooldown_tracker = CooldownDateTracker.new(dependency: dependency, ignored_versions: ignored_versions)
  @cooldown_tracker = T.let(cooldown_tracker, CooldownDateTracker)
end

Instance Attribute Details

#cooldown_optionsObject (readonly)

Returns the value of attribute cooldown_options.



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

def cooldown_options
  @cooldown_options
end

#credentialsObject (readonly)

Returns the value of attribute credentials.



32
33
34
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 32

def credentials
  @credentials
end

#dependencyObject (readonly)

Returns the value of attribute dependency.



26
27
28
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 26

def dependency
  @dependency
end

#dependency_filesObject (readonly)

Returns the value of attribute dependency_files.



29
30
31
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 29

def dependency_files
  @dependency_files
end

#ignored_versionsObject (readonly)

Returns the value of attribute ignored_versions.



35
36
37
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 35

def ignored_versions
  @ignored_versions
end

#optionsObject (readonly)

Returns the value of attribute options.



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

def options
  @options
end

#security_advisoriesObject (readonly)

Returns the value of attribute security_advisories.



38
39
40
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 38

def security_advisories
  @security_advisories
end

Instance Method Details

#available_versionsObject



128
129
130
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 128

def available_versions
  package_details&.releases
end

#latest_release(language_version: nil) ⇒ Object



107
108
109
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 107

def latest_release(language_version: nil)
  @latest_release ||= fetch_latest_release(language_version: language_version)
end

#latest_tag(language_version: nil) ⇒ Object



99
100
101
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 99

def latest_tag(language_version: nil)
  latest_release(language_version: language_version)&.tag
end

#latest_version(language_version: nil) ⇒ Object



91
92
93
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 91

def latest_version(language_version: nil)
  @latest_version ||= fetch_latest_version(language_version: language_version)
end

#latest_version_with_no_unlock(language_version: nil) ⇒ Object



115
116
117
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 115

def latest_version_with_no_unlock(language_version: nil)
  @latest_version_with_no_unlock ||= fetch_latest_version_with_no_unlock(language_version: language_version)
end

#lowest_security_fix_version(language_version: nil) ⇒ Object



123
124
125
# File 'lib/dependabot/package/package_latest_version_finder.rb', line 123

def lowest_security_fix_version(language_version: nil)
  @lowest_security_fix_version ||= fetch_lowest_security_fix_version(language_version: language_version)
end