Class: Dependabot::Docker::UpdateChecker

Inherits:
UpdateCheckers::Base
  • Object
show all
Defined in:
lib/dependabot/docker/update_checker.rb

Constant Summary collapse

VERSION_REGEX =
/v?(?<version>[0-9]+(?:(?:\.[a-z0-9]+)|(?:-(?:kb)?[0-9]+))*)/i.freeze
VERSION_WITH_SFX =
/^#{VERSION_REGEX}(?<suffix>-[a-z0-9.\-]+)?$/i.freeze
VERSION_WITH_PFX =
/^(?<prefix>[a-z0-9.\-]+-)?#{VERSION_REGEX}$/i.freeze
VERSION_WITH_PFX_AND_SFX =
/^(?<prefix>[a-z\-]+-)?#{VERSION_REGEX}(?<suffix>-[a-z\-]+)?$/i.
freeze
NAME_WITH_VERSION =
/
  #{VERSION_WITH_PFX}|
  #{VERSION_WITH_SFX}|
  #{VERSION_WITH_PFX_AND_SFX}
/x.freeze

Instance Method Summary collapse

Instance Method Details

#latest_resolvable_versionObject



33
34
35
36
# File 'lib/dependabot/docker/update_checker.rb', line 33

def latest_resolvable_version
  # Resolvability isn't an issue for Docker containers.
  latest_version
end

#latest_resolvable_version_with_no_unlockObject



38
39
40
41
# File 'lib/dependabot/docker/update_checker.rb', line 38

def latest_resolvable_version_with_no_unlock
  # No concept of "unlocking" for Docker containers
  dependency.version
end

#latest_versionObject



29
30
31
# File 'lib/dependabot/docker/update_checker.rb', line 29

def latest_version
  @latest_version ||= fetch_latest_version
end

#updated_requirementsObject



43
44
45
46
47
48
49
50
51
# File 'lib/dependabot/docker/update_checker.rb', line 43

def updated_requirements
  dependency.requirements.map do |req|
    updated_source = req.fetch(:source).dup
    updated_source[:digest] = updated_digest if req[:source][:digest]
    updated_source[:tag] = latest_version if req[:source][:tag]

    req.merge(source: updated_source)
  end
end