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::Azure::NotFound,
  Dependabot::Clients::Bitbucket::NotFound,
  Dependabot::Clients::CodeCommit::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.


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

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

  @linked_paths = {}
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials


17
18
19
# File 'lib/dependabot/file_fetchers/base.rb', line 17

def credentials
  @credentials
end

#sourceObject (readonly)

Returns the value of attribute source


17
18
19
# File 'lib/dependabot/file_fetchers/base.rb', line 17

def source
  @source
end

Class Method Details

.required_files_in?(_filename_array) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)

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

def self.required_files_in?(_filename_array)
  raise NotImplementedError
end

.required_files_messageObject

Raises:

  • (NotImplementedError)

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

def self.required_files_message
  raise NotImplementedError
end

Instance Method Details

#commitObject


58
59
60
61
62
63
64
65
66
67
68
# File 'lib/dependabot/file_fetchers/base.rb', line 58

def commit
  return source.commit if source.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 => e
  raise unless e.message.include?("Repository is empty")
end

#directoryObject


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

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

#filesObject


54
55
56
# File 'lib/dependabot/file_fetchers/base.rb', line 54

def files
  @files ||= fetch_files
end

#repoObject


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

def repo
  source.repo
end

#target_branchObject


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

def target_branch
  source.branch
end