Method: Datadog::CI::Git::LocalRepository.git_commits_rev_list

Defined in:
lib/datadog/ci/git/local_repository.rb

.git_commits_rev_list(included_commits:, excluded_commits:) ⇒ Object



197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'lib/datadog/ci/git/local_repository.rb', line 197

def self.git_commits_rev_list(included_commits:, excluded_commits:)
  Telemetry.git_command(Ext::Telemetry::Command::GET_OBJECTS)
  included_commits = filter_invalid_commits(included_commits).join(" ")
  excluded_commits = filter_invalid_commits(excluded_commits).map! { |sha| "^#{sha}" }.join(" ")

  res = nil

  duration_ms = Core::Utils::Time.measure(:float_millisecond) do
    res = exec_git_command(
      "git rev-list " \
      "--objects " \
      "--no-object-names " \
      "--filter=blob:none " \
      "--since=\"1 month ago\" " \
      "#{excluded_commits} #{included_commits}"
    )
  end

  Telemetry.git_command_ms(Ext::Telemetry::Command::GET_OBJECTS, duration_ms)

  res
rescue => e
  log_failure(e, "git commits rev list")
  telemetry_track_error(e, Ext::Telemetry::Command::GET_OBJECTS)
  nil
end