Class: Dependabot::MetadataFinders::Base::CommitResponseParser

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/metadata_finders/base/commit_response_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(source_url:) ⇒ CommitResponseParser

Returns a new instance of CommitResponseParser.



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

def initialize(source_url:)
  @source_url = source_url
end

Instance Method Details

#github_commit_message(commit) ⇒ Object



27
28
29
30
31
32
# File 'lib/dependabot/metadata_finders/base/commit_response_parser.rb', line 27

def github_commit_message(commit)
  details = T.cast(commit[:commit], Object)
  raise_bad_response("GitHub", "commit details must be an object") unless details.is_a?(Sawyer::Resource)

  sawyer_string(details, :message, "commit")
end

#github_commit_sha(commit) ⇒ Object



22
23
24
# File 'lib/dependabot/metadata_finders/base/commit_response_parser.rb', line 22

def github_commit_sha(commit)
  sawyer_string(commit, :sha, "commit")
end

#gitlab_string(resource, key, context) ⇒ Object



43
44
45
46
47
48
# File 'lib/dependabot/metadata_finders/base/commit_response_parser.rb', line 43

def gitlab_string(resource, key, context)
  value = T.cast(resource[key], Object)
  return value if value.is_a?(String)

  raise_bad_response("GitLab", "#{context} #{key} must be a string")
end

#object_string(object, key, context) ⇒ Object



51
52
53
54
55
56
# File 'lib/dependabot/metadata_finders/base/commit_response_parser.rb', line 51

def object_string(object, key, context)
  value = object[key]
  return value if value.is_a?(String)

  raise_bad_response("Azure", "#{context} #{key} must be a string")
end

#raise_bad_response(provider, message) ⇒ Object



59
60
61
62
63
64
# File 'lib/dependabot/metadata_finders/base/commit_response_parser.rb', line 59

def raise_bad_response(provider, message)
  raise Dependabot::PrivateSourceBadResponse.new(
    @source_url,
    "Malformed #{provider} commit response: #{message}"
  )
end

#sawyer_string(resource, key, context) ⇒ Object



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

def sawyer_string(resource, key, context)
  value = T.cast(resource[key], Object)
  return value if value.is_a?(String)

  raise_bad_response("GitHub", "#{context} #{key} must be a string")
end