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



56
57
58
59
# File 'lib/dependabot/docker/update_checker.rb', line 56

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

#latest_resolvable_version_with_no_unlockObject



61
62
63
64
# File 'lib/dependabot/docker/update_checker.rb', line 61

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

#latest_versionObject



52
53
54
# File 'lib/dependabot/docker/update_checker.rb', line 52

def latest_version
  @latest_version ||= fetch_latest_version
end

#updated_requirementsObject



66
67
68
69
70
71
72
73
74
# File 'lib/dependabot/docker/update_checker.rb', line 66

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