class Dependabot::Docker::FileFetcher

Public Class Methods

required_files_in?(filenames) click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 9
def self.required_files_in?(filenames)
  filenames.any? { |f| f.match?(/dockerfile/i) }
end
required_files_message() click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 13
def self.required_files_message
  "Repo must contain a Dockerfile."
end

Private Instance Methods

correctly_encoded_dockerfiles() click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 45
def correctly_encoded_dockerfiles
  dockerfiles.select { |f| f.content.valid_encoding? }
end
dockerfiles() click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 38
def dockerfiles
  @dockerfiles ||=
    repo_contents(raise_errors: false).
    select { |f| f.type == "file" && f.name.match?(/dockerfile/i) }.
    map { |f| fetch_file_from_host(f.name) }
end
fetch_files() click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 19
def fetch_files
  fetched_files = []
  fetched_files += correctly_encoded_dockerfiles

  return fetched_files if fetched_files.any?

  if incorrectly_encoded_dockerfiles.none?
    raise(
      Dependabot::DependencyFileNotFound,
      File.join(directory, "Dockerfile")
    )
  else
    raise(
      Dependabot::DependencyFileNotParseable,
      incorrectly_encoded_dockerfiles.first.path
    )
  end
end
incorrectly_encoded_dockerfiles() click to toggle source
# File lib/dependabot/docker/file_fetcher.rb, line 49
def incorrectly_encoded_dockerfiles
  dockerfiles.reject { |f| f.content.valid_encoding? }
end