Class: Dependabot::FileFetchers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/file_fetchers/base.rb

Constant Summary collapse

CLIENT_NOT_FOUND_ERRORS =
[
  Octokit::NotFound,
  Gitlab::Error::NotFound,
  Dependabot::Clients::Bitbucket::NotFound
].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source:, credentials:) ⇒ Base

Returns a new instance of Base.



31
32
33
34
35
36
# File 'lib/dependabot/file_fetchers/base.rb', line 31

def initialize(source:, credentials:)
  @source = source
  @credentials = credentials

  @submodule_directories = {}
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



15
16
17
# File 'lib/dependabot/file_fetchers/base.rb', line 15

def credentials
  @credentials
end

#sourceObject (readonly)

Returns the value of attribute source.



15
16
17
# File 'lib/dependabot/file_fetchers/base.rb', line 15

def source
  @source
end

Class Method Details

.required_files_in?(_filename_array) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/dependabot/file_fetchers/base.rb', line 23

def self.required_files_in?(_filename_array)
  raise NotImplementedError
end

.required_files_messageObject

Raises:

  • (NotImplementedError)


27
28
29
# File 'lib/dependabot/file_fetchers/base.rb', line 27

def self.required_files_message
  raise NotImplementedError
end

Instance Method Details

#commitObject



54
55
56
57
58
59
60
61
62
# File 'lib/dependabot/file_fetchers/base.rb', line 54

def commit
  branch = target_branch || default_branch_for_repo

  @commit ||= client_for_provider.fetch_commit(repo, branch)
rescue *CLIENT_NOT_FOUND_ERRORS
  raise Dependabot::BranchNotFound, branch
rescue Octokit::Conflict => error
  raise unless error.message.include?("Repository is empty")
end

#directoryObject



42
43
44
# File 'lib/dependabot/file_fetchers/base.rb', line 42

def directory
  Pathname.new(source.directory || "/").cleanpath.to_path
end

#filesObject



50
51
52
# File 'lib/dependabot/file_fetchers/base.rb', line 50

def files
  @files ||= fetch_files
end

#repoObject



38
39
40
# File 'lib/dependabot/file_fetchers/base.rb', line 38

def repo
  source.repo
end

#target_branchObject



46
47
48
# File 'lib/dependabot/file_fetchers/base.rb', line 46

def target_branch
  source.branch
end