Class: Datadog::CI::Remote::LibrarySettings
- Inherits:
-
Object
- Object
- Datadog::CI::Remote::LibrarySettings
- Defined in:
- lib/datadog/ci/remote/library_settings.rb
Overview
Wrapper around the settings HTTP response
Instance Method Summary collapse
- #code_coverage_enabled? ⇒ Boolean
- #flaky_test_retries_enabled? ⇒ Boolean
-
#initialize(http_response) ⇒ LibrarySettings
constructor
A new instance of LibrarySettings.
- #itr_enabled? ⇒ Boolean
- #ok? ⇒ Boolean
- #payload ⇒ Object
- #require_git? ⇒ Boolean
- #tests_skipping_enabled? ⇒ Boolean
Constructor Details
#initialize(http_response) ⇒ LibrarySettings
Returns a new instance of LibrarySettings.
15 16 17 18 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 15 def initialize(http_response) @http_response = http_response @json = nil end |
Instance Method Details
#code_coverage_enabled? ⇒ Boolean
61 62 63 64 65 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 61 def code_coverage_enabled? return @code_coverage_enabled if defined?(@code_coverage_enabled) @code_coverage_enabled = bool(Ext::Transport::DD_API_SETTINGS_RESPONSE_CODE_COVERAGE_KEY) end |
#flaky_test_retries_enabled? ⇒ Boolean
73 74 75 76 77 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 73 def flaky_test_retries_enabled? return @flaky_test_retries_enabled if defined?(@flaky_test_retries_enabled) @flaky_test_retries_enabled = bool(Ext::Transport::DD_API_SETTINGS_RESPONSE_FLAKY_TEST_RETRIES_KEY) end |
#itr_enabled? ⇒ Boolean
55 56 57 58 59 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 55 def itr_enabled? return @itr_enabled if defined?(@itr_enabled) @itr_enabled = bool(Ext::Transport::DD_API_SETTINGS_RESPONSE_ITR_ENABLED_KEY) end |
#ok? ⇒ Boolean
20 21 22 23 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 20 def ok? resp = @http_response !resp.nil? && resp.ok? end |
#payload ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 25 def payload cached = @json return cached unless cached.nil? resp = @http_response return @json = default_payload if resp.nil? || !ok? begin @json = JSON.parse(resp.payload).dig(*Ext::Transport::DD_API_SETTINGS_RESPONSE_DIG_KEYS) || default_payload rescue JSON::ParserError => e Datadog.logger.error("Failed to parse settings response payload: #{e}. Payload was: #{resp.payload}") Transport::Telemetry.api_requests_errors( Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS_ERRORS, 1, error_type: "invalid_json", status_code: nil ) @json = default_payload end end |
#require_git? ⇒ Boolean
49 50 51 52 53 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 49 def require_git? return @require_git if defined?(@require_git) @require_git = bool(Ext::Transport::DD_API_SETTINGS_RESPONSE_REQUIRE_GIT_KEY) end |
#tests_skipping_enabled? ⇒ Boolean
67 68 69 70 71 |
# File 'lib/datadog/ci/remote/library_settings.rb', line 67 def tests_skipping_enabled? return @tests_skipping_enabled if defined?(@tests_skipping_enabled) @tests_skipping_enabled = bool(Ext::Transport::DD_API_SETTINGS_RESPONSE_TESTS_SKIPPING_KEY) end |