Class: Dependabot::Devcontainers::UpdateChecker

Inherits:
UpdateCheckers::Base
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/devcontainers/update_checker.rb,
lib/dependabot/devcontainers/update_checker/latest_version_finder.rb

Defined Under Namespace

Classes: LatestVersionFinder

Instance Method Summary collapse

Instance Method Details

#latest_resolvable_versionObject



25
26
27
# File 'lib/dependabot/devcontainers/update_checker.rb', line 25

def latest_resolvable_version
  latest_version # TODO
end

#latest_resolvable_version_with_no_unlockObject

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/dependabot/devcontainers/update_checker.rb', line 30

def latest_resolvable_version_with_no_unlock
  raise NotImplementedError
end

#latest_versionObject



20
21
22
# File 'lib/dependabot/devcontainers/update_checker.rb', line 20

def latest_version
  @latest_version ||= T.let(T.must(release_versions).last, T.nilable(Gem::Version))
end

#updated_requirementsObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/dependabot/devcontainers/update_checker.rb', line 35

def updated_requirements
  updated_reqs = dependency.requirements.map do |requirement|
    required_version = T.cast(version_class.new(requirement[:requirement]), Dependabot::Devcontainers::Version)
    versions = T.cast(release_versions, T::Array[Dependabot::Devcontainers::Version])
    precision_matches = remove_precision_changes(versions, required_version)
    # When the published tags don't include a precision-matching tag (e.g. a feature
    # that only publishes full semver like "1.10.0" but the pin is the major-only ":1"),
    # fall back to truncating the latest version to the required precision so that
    # ":1" stays ":1" within the same major and becomes ":2" on a major bump.
    updated_requirement =
      if precision_matches.any?
        precision_matches.last
      else
        versions.last&.truncate_to_precision_of(required_version)
      end
    {
      file: requirement[:file],
      requirement: updated_requirement&.to_s || requirement[:requirement],
      groups: requirement[:groups],
      source: requirement[:source]
    }
  end
  wrap_requirements(updated_reqs)
end