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



63
64
65
66
# File 'lib/dependabot/docker/update_checker.rb', line 63

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

#latest_resolvable_version_with_no_unlockObject



68
69
70
71
# File 'lib/dependabot/docker/update_checker.rb', line 68

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

#latest_versionObject



59
60
61
# File 'lib/dependabot/docker/update_checker.rb', line 59

def latest_version
  fetch_latest_version(dependency.version)
end

#updated_requirementsObject



73
74
75
76
77
78
79
80
81
# File 'lib/dependabot/docker/update_checker.rb', line 73

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] = fetch_latest_version(req[:source][:tag]) if req[:source][:tag]

    req.merge(source: updated_source)
  end
end