Class: Datadog::CI::Git::SearchCommits

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/ci/git/search_commits.rb

Defined Under Namespace

Classes: ApiError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api:) ⇒ SearchCommits

Returns a new instance of SearchCommits.



17
18
19
# File 'lib/datadog/ci/git/search_commits.rb', line 17

def initialize(api:)
  @api = api
end

Instance Attribute Details

#apiObject (readonly)

Returns the value of attribute api.



15
16
17
# File 'lib/datadog/ci/git/search_commits.rb', line 15

def api
  @api
end

Instance Method Details

#call(repository_url, commits) ⇒ Object

Raises:



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/datadog/ci/git/search_commits.rb', line 21

def call(repository_url, commits)
  raise ApiError, "test visibility API is not configured" if api.nil?

  http_response = api.api_request(
    path: Ext::Transport::DD_API_GIT_SEARCH_COMMITS_PATH,
    payload: request_payload(repository_url, commits)
  )
  raise ApiError, "Failed to search commits: #{http_response.inspect}" unless http_response.ok?

  response_payload = parse_json_response(http_response)
  extract_commits(response_payload)
end