Class: Dependabot::Devcontainers::FileFetcher

Inherits:
FileFetchers::Base
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/devcontainers/file_fetcher.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.required_files_in?(filenames) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
# File 'lib/dependabot/devcontainers/file_fetcher.rb', line 15

def self.required_files_in?(filenames)
  # There's several other places a devcontainer.json can be checked into
  # See: https://containers.dev/implementors/spec/#devcontainerjson
  filenames.any? { |f| f.end_with?("devcontainer.json") }
end

.required_files_messageObject



22
23
24
# File 'lib/dependabot/devcontainers/file_fetcher.rb', line 22

def self.required_files_message
  "Repo must contain a dev container configuration file."
end

Instance Method Details

#fetch_filesObject

Raises:

  • (Dependabot::DependencyFileNotFound)


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/dependabot/devcontainers/file_fetcher.rb', line 27

def fetch_files
  fetched_files = []
  fetched_files += root_files
  fetched_files += scoped_files
  fetched_files += custom_directory_files

  # Mark all files as not support files
  fetched_files.each do |file|
    file.support_file = false
  end

  return fetched_files if fetched_files.any?

  raise Dependabot::DependencyFileNotFound.new(
    nil,
    "Neither .devcontainer.json nor .devcontainer/devcontainer.json nor " \
    ".devcontainer/<anything>/devcontainer.json found in #{directory}"
  )
end