Class: Dependabot::Cargo::UpdateChecker
- Inherits:
-
UpdateCheckers::Base
- Object
- UpdateCheckers::Base
- Dependabot::Cargo::UpdateChecker
show all
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/cargo/update_checker.rb,
lib/dependabot/cargo/update_checker/file_preparer.rb,
lib/dependabot/cargo/update_checker/version_resolver.rb,
lib/dependabot/cargo/update_checker/requirements_updater.rb,
lib/dependabot/cargo/update_checker/latest_version_finder.rb
Overview
rubocop:disable Metrics/ClassLength
Defined Under Namespace
Classes: FilePreparer, LatestVersionFinder, RequirementsUpdater, VersionResolver
Instance Method Summary
collapse
Instance Method Details
#can_update?(requirements_to_unlock:) ⇒ Boolean
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/dependabot/cargo/update_checker.rb', line 31
def can_update?(requirements_to_unlock:)
return super unless multiple_locked_versions?
results, ignored_count = locked_version_results(false) do |checker|
checker.can_update?(requirements_to_unlock: requirements_to_unlock)
end
updatable = results.any?
raise Dependabot::AllVersionsIgnored if ignored_count.positive? && !updatable
updatable
end
|
#latest_resolvable_version ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/dependabot/cargo/update_checker.rb', line 80
def latest_resolvable_version
return if path_dependency?
@latest_resolvable_version = T.let(
@latest_resolvable_version ||
if git_dependency?
latest_resolvable_version_for_git_dependency
elsif git_subdependency?
nil
else
fetch_latest_resolvable_version(unlock_requirement: true)
end,
T.nilable(T.any(String, Gem::Version))
)
end
|
#latest_resolvable_version_with_no_unlock ⇒ Object
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# File 'lib/dependabot/cargo/update_checker.rb', line 119
def latest_resolvable_version_with_no_unlock
return if path_dependency?
@latest_resolvable_version_with_no_unlock = T.let(
@latest_resolvable_version_with_no_unlock ||
if git_dependency?
latest_resolvable_commit_with_unchanged_git_source
else
fetch_latest_resolvable_version(unlock_requirement: false)
end,
T.nilable(T.any(String, Gem::Version))
)
end
|
#latest_version ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/dependabot/cargo/update_checker.rb', line 60
def latest_version
return if path_dependency?
raise Dependabot::AllVersionsIgnored if multiple_locked_versions? && only_ignored_updates_remaining?
@latest_version = T.let(
if git_dependency?
latest_version_for_git_dependency
elsif git_subdependency?
nil
else
latest_version_finder.latest_version
end,
T.nilable(T.any(String, Gem::Version))
)
end
|
#lowest_resolvable_security_fix_version ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/dependabot/cargo/update_checker.rb', line 106
def lowest_resolvable_security_fix_version
raise "Dependency not vulnerable!" unless vulnerable?
return @lowest_resolvable_security_fix_version if defined?(@lowest_resolvable_security_fix_version)
result = fetch_lowest_resolvable_security_fix_version
@lowest_resolvable_security_fix_version = T.let(
result.is_a?(Gem::Version) ? result : nil,
T.nilable(Gem::Version)
)
end
|
#lowest_security_fix_version ⇒ Object
99
100
101
102
103
|
# File 'lib/dependabot/cargo/update_checker.rb', line 99
def lowest_security_fix_version
raise Dependabot::AllVersionsIgnored if multiple_locked_versions? && only_ignored_updates_remaining?
latest_version_finder.lowest_security_fix_version
end
|
#requirements_unlocked_or_can_be? ⇒ Boolean
144
145
146
|
# File 'lib/dependabot/cargo/update_checker.rb', line 144
def requirements_unlocked_or_can_be?
!requirements_update_strategy.lockfile_only?
end
|
#requirements_update_strategy ⇒ Object
149
150
151
152
153
154
155
156
157
158
159
|
# File 'lib/dependabot/cargo/update_checker.rb', line 149
def requirements_update_strategy
return @requirements_update_strategy if @requirements_update_strategy
RequirementsUpdateStrategy::BumpVersionsIfNecessary
end
|
#up_to_date? ⇒ Boolean
22
23
24
25
26
27
28
|
# File 'lib/dependabot/cargo/update_checker.rb', line 22
def up_to_date?
return super unless multiple_locked_versions?
raise Dependabot::AllVersionsIgnored if only_ignored_updates_remaining?
all_lines_current?
end
|
#updated_dependencies(requirements_to_unlock:) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/dependabot/cargo/update_checker.rb', line 47
def updated_dependencies(requirements_to_unlock:)
return super unless multiple_locked_versions?
results, ignored_count = locked_version_results([]) do |checker|
checker.updated_dependencies(requirements_to_unlock: requirements_to_unlock)
end
updates = results.flatten
raise Dependabot::AllVersionsIgnored if ignored_count.positive? && updates.empty?
updates
end
|
#updated_requirements ⇒ Object
134
135
136
137
138
139
140
141
|
# File 'lib/dependabot/cargo/update_checker.rb', line 134
def updated_requirements
RequirementsUpdater.new(
requirements: dependency.requirements,
updated_source: updated_source,
target_version: target_version,
update_strategy: requirements_update_strategy
).updated_requirements
end
|