Class: Dependabot::Julia::UpdateChecker
- Inherits:
-
UpdateCheckers::Base
- Object
- UpdateCheckers::Base
- Dependabot::Julia::UpdateChecker
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/julia/update_checker.rb
Instance Method Summary collapse
- #custom_registries ⇒ Object
-
#initialize(dependency:, dependency_files:, credentials:, repo_contents_path: nil, ignored_versions: [], raise_on_ignored: false, security_advisories: [], requirements_update_strategy: nil, dependency_group: nil, update_cooldown: nil, options: {}) ⇒ UpdateChecker
constructor
A new instance of UpdateChecker.
- #latest_resolvable_version ⇒ Object
- #latest_resolvable_version_with_no_unlock ⇒ Object
- #latest_version ⇒ Object
- #updated_requirements ⇒ Object
Constructor Details
#initialize(dependency:, dependency_files:, credentials:, repo_contents_path: nil, ignored_versions: [], raise_on_ignored: false, security_advisories: [], requirements_update_strategy: nil, dependency_group: nil, update_cooldown: nil, options: {}) ⇒ UpdateChecker
Returns a new instance of UpdateChecker.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dependabot/julia/update_checker.rb', line 33 def initialize( dependency:, dependency_files:, credentials:, repo_contents_path: nil, ignored_versions: [], raise_on_ignored: false, security_advisories: [], requirements_update_strategy: nil, dependency_group: nil, update_cooldown: nil, options: {} ) super @custom_registries = T.let(nil, T.nilable(T::Array[T::Hash[Symbol, T.untyped]])) end |
Instance Method Details
#custom_registries ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/dependabot/julia/update_checker.rb', line 56 def custom_registries return @custom_registries if @custom_registries registries = T.cast(.dig(:registries, :julia), T.nilable(T::Array[T.untyped])) || [] # Convert string keys to symbols if needed @custom_registries = registries.map do |registry| if registry.is_a?(Hash) registry.transform_keys(&:to_sym) else T.cast(registry, T::Hash[Symbol, T.untyped]) end end end |
#latest_resolvable_version ⇒ Object
71 72 73 74 75 |
# File 'lib/dependabot/julia/update_checker.rb', line 71 def latest_resolvable_version # For Julia, the latest version is generally resolvable since # the manifest file locks exact versions, so we use latest_version @latest_resolvable_version ||= T.let(latest_version, T.nilable(Gem::Version)) end |
#latest_resolvable_version_with_no_unlock ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/dependabot/julia/update_checker.rb', line 78 def latest_resolvable_version_with_no_unlock # Return latest version that satisfies current requirement constraints return nil unless latest_version current_requirement = T.cast(dependency.requirements.first&.fetch(:requirement, nil), T.nilable(String)) if current_requirement.nil? || current_requirement == "*" return Dependabot::Julia::Version.new(latest_version.to_s) end req = requirement_class.new(current_requirement) return unless T.cast(req.satisfied_by?(latest_version), T::Boolean) Dependabot::Julia::Version.new(latest_version.to_s) end |
#latest_version ⇒ Object
51 52 53 |
# File 'lib/dependabot/julia/update_checker.rb', line 51 def latest_version @latest_version ||= T.let(latest_version_finder.latest_version, T.nilable(Gem::Version)) end |
#updated_requirements ⇒ Object
95 96 97 98 99 100 101 |
# File 'lib/dependabot/julia/update_checker.rb', line 95 def updated_requirements Dependabot::Julia::RequirementsUpdater.new( requirements: dependency.requirements, target_version: latest_resolvable_version&.to_s, update_strategy: requirements_update_strategy&.to_s&.to_sym ).updated_requirements end |