datadog-ci 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -2
- data/lib/datadog/ci/configuration/components.rb +30 -3
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +13 -9
- data/lib/datadog/ci/contrib/minitest/runnable.rb +5 -1
- data/lib/datadog/ci/contrib/minitest/runner.rb +6 -2
- data/lib/datadog/ci/contrib/minitest/test.rb +7 -3
- data/lib/datadog/ci/contrib/rspec/example.rb +6 -2
- data/lib/datadog/ci/contrib/rspec/example_group.rb +5 -1
- data/lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb +6 -2
- data/lib/datadog/ci/contrib/rspec/runner.rb +6 -2
- data/lib/datadog/ci/ext/environment/providers/appveyor.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/aws_code_pipeline.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/azure.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/bitbucket.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/bitrise.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/buddy.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/buildkite.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/circleci.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/codefresh.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/github_actions.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/gitlab.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/jenkins.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/teamcity.rb +1 -1
- data/lib/datadog/ci/ext/environment/providers/travis.rb +1 -1
- data/lib/datadog/ci/ext/environment.rb +17 -0
- data/lib/datadog/ci/ext/telemetry.rb +120 -0
- data/lib/datadog/ci/git/local_repository.rb +116 -25
- data/lib/datadog/ci/git/search_commits.rb +20 -1
- data/lib/datadog/ci/git/telemetry.rb +37 -0
- data/lib/datadog/ci/git/tree_uploader.rb +7 -0
- data/lib/datadog/ci/git/upload_packfile.rb +22 -1
- data/lib/datadog/ci/test.rb +5 -0
- data/lib/datadog/ci/test_optimisation/component.rb +16 -2
- data/lib/datadog/ci/test_optimisation/coverage/transport.rb +10 -1
- data/lib/datadog/ci/test_optimisation/skippable.rb +24 -0
- data/lib/datadog/ci/test_optimisation/telemetry.rb +56 -0
- data/lib/datadog/ci/test_visibility/component.rb +95 -235
- data/lib/datadog/ci/test_visibility/context.rb +274 -0
- data/lib/datadog/ci/test_visibility/{context → store}/global.rb +1 -1
- data/lib/datadog/ci/test_visibility/{context → store}/local.rb +1 -1
- data/lib/datadog/ci/test_visibility/telemetry.rb +69 -0
- data/lib/datadog/ci/test_visibility/transport.rb +8 -9
- data/lib/datadog/ci/transport/adapters/net.rb +42 -11
- data/lib/datadog/ci/transport/adapters/net_http_client.rb +17 -0
- data/lib/datadog/ci/transport/adapters/telemetry_webmock_safe_adapter.rb +28 -0
- data/lib/datadog/ci/transport/event_platform_transport.rb +42 -5
- data/lib/datadog/ci/transport/http.rb +49 -21
- data/lib/datadog/ci/transport/remote_settings_api.rb +39 -1
- data/lib/datadog/ci/transport/telemetry.rb +93 -0
- data/lib/datadog/ci/utils/identity.rb +20 -0
- data/lib/datadog/ci/utils/parsing.rb +2 -1
- data/lib/datadog/ci/utils/telemetry.rb +23 -0
- data/lib/datadog/ci/version.rb +1 -1
- data/lib/datadog/ci.rb +30 -0
- metadata +16 -6
@@ -3,6 +3,8 @@
|
|
3
3
|
require "delegate"
|
4
4
|
require "socket"
|
5
5
|
|
6
|
+
require "datadog/core/utils/time"
|
7
|
+
|
6
8
|
require_relative "gzip"
|
7
9
|
require_relative "adapters/net"
|
8
10
|
require_relative "../ext/transport"
|
@@ -39,27 +41,36 @@ module Datadog
|
|
39
41
|
backoff: INITIAL_BACKOFF,
|
40
42
|
accept_compressed_response: false
|
41
43
|
)
|
42
|
-
|
43
|
-
headers[Ext::Transport::HEADER_CONTENT_ENCODING] = Ext::Transport::CONTENT_ENCODING_GZIP
|
44
|
-
payload = Gzip.compress(payload)
|
45
|
-
end
|
44
|
+
response = nil
|
46
45
|
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
duration_ms = Core::Utils::Time.measure(:float_millisecond) do
|
47
|
+
if compress
|
48
|
+
headers[Ext::Transport::HEADER_CONTENT_ENCODING] = Ext::Transport::CONTENT_ENCODING_GZIP
|
49
|
+
payload = Gzip.compress(payload)
|
50
|
+
end
|
50
51
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
end
|
52
|
+
if accept_compressed_response
|
53
|
+
headers[Ext::Transport::HEADER_ACCEPT_ENCODING] = Ext::Transport::CONTENT_ENCODING_GZIP
|
54
|
+
end
|
55
55
|
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
Datadog.logger.debug do
|
57
|
+
"Sending #{verb} request: host=#{host}; port=#{port}; ssl_enabled=#{ssl}; " \
|
58
|
+
"compression_enabled=#{compress}; path=#{path}; payload_size=#{payload.size}"
|
59
|
+
end
|
60
|
+
|
61
|
+
response = perform_http_call(path: path, payload: payload, headers: headers, verb: verb, retries: retries, backoff: backoff)
|
59
62
|
|
60
|
-
|
61
|
-
|
63
|
+
Datadog.logger.debug do
|
64
|
+
"Received server response: #{response.inspect}"
|
65
|
+
end
|
62
66
|
end
|
67
|
+
# @type var response: Datadog::CI::Transport::Adapters::Net::Response
|
68
|
+
# @type var duration_ms: Float
|
69
|
+
|
70
|
+
# set some stats about the request
|
71
|
+
response.request_compressed = compress
|
72
|
+
response.request_size = payload.bytesize
|
73
|
+
response.duration_ms = duration_ms
|
63
74
|
|
64
75
|
response
|
65
76
|
end
|
@@ -81,7 +92,7 @@ module Datadog
|
|
81
92
|
)
|
82
93
|
else
|
83
94
|
Datadog.logger.error("Failed to send request after #{MAX_RETRIES} retries")
|
84
|
-
|
95
|
+
ErrorResponse.new(e)
|
85
96
|
end
|
86
97
|
end
|
87
98
|
|
@@ -91,10 +102,27 @@ module Datadog
|
|
91
102
|
)
|
92
103
|
end
|
93
104
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
105
|
+
class ErrorResponse < Adapters::Net::Response
|
106
|
+
def initialize(error)
|
107
|
+
@error = error
|
108
|
+
end
|
109
|
+
|
110
|
+
attr_reader :error
|
111
|
+
|
112
|
+
def payload
|
113
|
+
""
|
114
|
+
end
|
115
|
+
|
116
|
+
def header(name)
|
117
|
+
nil
|
118
|
+
end
|
119
|
+
|
120
|
+
def code
|
121
|
+
nil
|
122
|
+
end
|
123
|
+
|
124
|
+
def inspect
|
125
|
+
"ErrorResponse error:#{error}"
|
98
126
|
end
|
99
127
|
end
|
100
128
|
end
|
@@ -4,8 +4,11 @@ require "json"
|
|
4
4
|
|
5
5
|
require "datadog/core/environment/identity"
|
6
6
|
|
7
|
+
require_relative "../ext/telemetry"
|
7
8
|
require_relative "../ext/transport"
|
9
|
+
require_relative "../transport/telemetry"
|
8
10
|
require_relative "../utils/parsing"
|
11
|
+
require_relative "../utils/telemetry"
|
9
12
|
|
10
13
|
module Datadog
|
11
14
|
module CI
|
@@ -36,6 +39,14 @@ module Datadog
|
|
36
39
|
default_payload
|
37
40
|
rescue JSON::ParserError => e
|
38
41
|
Datadog.logger.error("Failed to parse settings response payload: #{e}. Payload was: #{resp.payload}")
|
42
|
+
|
43
|
+
Transport::Telemetry.api_requests_errors(
|
44
|
+
Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS_ERRORS,
|
45
|
+
1,
|
46
|
+
error_type: "invalid_json",
|
47
|
+
status_code: nil
|
48
|
+
)
|
49
|
+
|
39
50
|
@json = default_payload
|
40
51
|
end
|
41
52
|
end
|
@@ -69,7 +80,34 @@ module Datadog
|
|
69
80
|
payload: request_payload
|
70
81
|
)
|
71
82
|
|
72
|
-
|
83
|
+
Transport::Telemetry.api_requests(
|
84
|
+
Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS,
|
85
|
+
1,
|
86
|
+
compressed: http_response.request_compressed
|
87
|
+
)
|
88
|
+
Utils::Telemetry.distribution(Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS_MS, http_response.duration_ms)
|
89
|
+
|
90
|
+
unless http_response.ok?
|
91
|
+
Transport::Telemetry.api_requests_errors(
|
92
|
+
Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS_ERRORS,
|
93
|
+
1,
|
94
|
+
error_type: http_response.telemetry_error_type,
|
95
|
+
status_code: http_response.code
|
96
|
+
)
|
97
|
+
end
|
98
|
+
|
99
|
+
response = Response.new(http_response)
|
100
|
+
|
101
|
+
Utils::Telemetry.inc(
|
102
|
+
Ext::Telemetry::METRIC_GIT_REQUESTS_SETTINGS_RESPONSE,
|
103
|
+
1,
|
104
|
+
{
|
105
|
+
Ext::Telemetry::TAG_COVERAGE_ENABLED => response.payload[Ext::Transport::DD_API_SETTINGS_RESPONSE_CODE_COVERAGE_KEY],
|
106
|
+
Ext::Telemetry::TAG_ITR_SKIP_ENABLED => response.payload[Ext::Transport::DD_API_SETTINGS_RESPONSE_TESTS_SKIPPING_KEY]
|
107
|
+
}
|
108
|
+
)
|
109
|
+
|
110
|
+
response
|
73
111
|
end
|
74
112
|
|
75
113
|
private
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../ext/telemetry"
|
4
|
+
require_relative "../utils/telemetry"
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module CI
|
8
|
+
module Transport
|
9
|
+
module Telemetry
|
10
|
+
def self.events_enqueued_for_serialization(count)
|
11
|
+
Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENTS_ENQUEUED, count)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.endpoint_payload_events_count(count, endpoint:)
|
15
|
+
Utils::Telemetry.distribution(
|
16
|
+
Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_EVENTS_COUNT,
|
17
|
+
count.to_f,
|
18
|
+
tags(endpoint: endpoint)
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.endpoint_payload_serialization_ms(duration_ms, endpoint:)
|
23
|
+
Utils::Telemetry.distribution(
|
24
|
+
Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_EVENTS_SERIALIZATION_MS,
|
25
|
+
duration_ms,
|
26
|
+
tags(endpoint: endpoint)
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.endpoint_payload_dropped(count, endpoint:)
|
31
|
+
Utils::Telemetry.inc(
|
32
|
+
Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_DROPPED,
|
33
|
+
count,
|
34
|
+
tags(endpoint: endpoint)
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.endpoint_payload_requests(count, endpoint:, compressed:)
|
39
|
+
tags = tags(endpoint: endpoint)
|
40
|
+
tags[Ext::Telemetry::TAG_REQUEST_COMPRESSED] = "true" if compressed
|
41
|
+
|
42
|
+
Utils::Telemetry.inc(Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_REQUESTS, count, tags)
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.endpoint_payload_requests_ms(duration_ms, endpoint:)
|
46
|
+
Utils::Telemetry.distribution(
|
47
|
+
Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_REQUESTS_MS,
|
48
|
+
duration_ms,
|
49
|
+
tags(endpoint: endpoint)
|
50
|
+
)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.endpoint_payload_bytes(bytesize, endpoint:)
|
54
|
+
Utils::Telemetry.distribution(
|
55
|
+
Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_BYTES,
|
56
|
+
bytesize.to_f,
|
57
|
+
tags(endpoint: endpoint)
|
58
|
+
)
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.endpoint_payload_requests_errors(count, endpoint:, error_type:, status_code:)
|
62
|
+
tags = tags(endpoint: endpoint)
|
63
|
+
set_error_tags(tags, error_type: error_type, status_code: status_code)
|
64
|
+
|
65
|
+
Utils::Telemetry.inc(Ext::Telemetry::METRIC_ENDPOINT_PAYLOAD_REQUESTS_ERRORS, count, tags)
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.api_requests(metric_name, count, compressed:)
|
69
|
+
tags = {}
|
70
|
+
tags[Ext::Telemetry::TAG_REQUEST_COMPRESSED] = "true" if compressed
|
71
|
+
|
72
|
+
Utils::Telemetry.inc(metric_name, count, tags)
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.api_requests_errors(metric_name, count, error_type:, status_code:)
|
76
|
+
tags = {}
|
77
|
+
set_error_tags(tags, error_type: error_type, status_code: status_code)
|
78
|
+
|
79
|
+
Utils::Telemetry.inc(metric_name, count, tags)
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.tags(endpoint:)
|
83
|
+
{Ext::Telemetry::TAG_ENDPOINT => endpoint}
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.set_error_tags(tags, error_type:, status_code:)
|
87
|
+
tags[Ext::Telemetry::TAG_ERROR_TYPE] = error_type if error_type
|
88
|
+
tags[Ext::Telemetry::TAG_STATUS_CODE] = status_code.to_s if status_code
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Datadog
|
4
|
+
module CI
|
5
|
+
module Utils
|
6
|
+
module Identity
|
7
|
+
def self.included(base)
|
8
|
+
base.singleton_class.prepend(ClassMethods)
|
9
|
+
end
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
# return datadog-ci gem version instead of datadog gem version
|
13
|
+
def gem_datadog_version
|
14
|
+
Datadog::CI::VERSION::STRING
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../ext/telemetry"
|
4
|
+
|
5
|
+
module Datadog
|
6
|
+
module CI
|
7
|
+
module Utils
|
8
|
+
module Telemetry
|
9
|
+
def self.inc(metric_name, count, tags = {})
|
10
|
+
telemetry.inc(Ext::Telemetry::NAMESPACE, metric_name, count, tags: tags)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.distribution(metric_name, value, tags = {})
|
14
|
+
telemetry.distribution(Ext::Telemetry::NAMESPACE, metric_name, value, tags: tags)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.telemetry
|
18
|
+
Datadog.send(:components).telemetry
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/datadog/ci/version.rb
CHANGED
data/lib/datadog/ci.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
require_relative "ci/version"
|
4
4
|
require_relative "ci/utils/configuration"
|
5
|
+
require_relative "ci/utils/telemetry"
|
5
6
|
require_relative "ci/ext/app_types"
|
7
|
+
require_relative "ci/ext/telemetry"
|
6
8
|
|
7
9
|
require "datadog/core"
|
8
10
|
|
@@ -39,6 +41,11 @@ module Datadog
|
|
39
41
|
# @return [Datadog::CI::TestSession] the active, running {Datadog::CI::TestSession}.
|
40
42
|
# @return [nil] if test suite level visibility is disabled or CI mode is disabled.
|
41
43
|
def start_test_session(service: Utils::Configuration.fetch_service_name("test"), tags: {})
|
44
|
+
Utils::Telemetry.inc(
|
45
|
+
Ext::Telemetry::METRIC_MANUAL_API_EVENTS,
|
46
|
+
1,
|
47
|
+
{Ext::Telemetry::TAG_EVENT_TYPE => Ext::Telemetry::EventType::SESSION}
|
48
|
+
)
|
42
49
|
test_visibility.start_test_session(service: service, tags: tags)
|
43
50
|
end
|
44
51
|
|
@@ -93,6 +100,12 @@ module Datadog
|
|
93
100
|
# @return [Datadog::CI::TestModule] the active, running {Datadog::CI::TestModule}.
|
94
101
|
# @return [nil] if test suite level visibility is disabled or CI mode is disabled.
|
95
102
|
def start_test_module(test_module_name, service: nil, tags: {})
|
103
|
+
Utils::Telemetry.inc(
|
104
|
+
Ext::Telemetry::METRIC_MANUAL_API_EVENTS,
|
105
|
+
1,
|
106
|
+
{Ext::Telemetry::TAG_EVENT_TYPE => Ext::Telemetry::EventType::MODULE}
|
107
|
+
)
|
108
|
+
|
96
109
|
test_visibility.start_test_module(test_module_name, service: service, tags: tags)
|
97
110
|
end
|
98
111
|
|
@@ -145,6 +158,12 @@ module Datadog
|
|
145
158
|
# @return [Datadog::CI::TestSuite] the active, running {Datadog::CI::TestSuite}.
|
146
159
|
# @return [nil] if test suite level visibility is disabled or CI mode is disabled.
|
147
160
|
def start_test_suite(test_suite_name, service: nil, tags: {})
|
161
|
+
Utils::Telemetry.inc(
|
162
|
+
Ext::Telemetry::METRIC_MANUAL_API_EVENTS,
|
163
|
+
1,
|
164
|
+
{Ext::Telemetry::TAG_EVENT_TYPE => Ext::Telemetry::EventType::SUITE}
|
165
|
+
)
|
166
|
+
|
148
167
|
test_visibility.start_test_suite(test_suite_name, service: service, tags: tags)
|
149
168
|
end
|
150
169
|
|
@@ -222,6 +241,12 @@ module Datadog
|
|
222
241
|
# @yieldparam [Datadog::CI::Test] ci_test the newly created and active [Datadog::CI::Test]
|
223
242
|
# @yieldparam [nil] if CI mode is disabled
|
224
243
|
def trace_test(test_name, test_suite_name, service: nil, tags: {}, &block)
|
244
|
+
Utils::Telemetry.inc(
|
245
|
+
Ext::Telemetry::METRIC_MANUAL_API_EVENTS,
|
246
|
+
1,
|
247
|
+
{Ext::Telemetry::TAG_EVENT_TYPE => Ext::Telemetry::EventType::TEST}
|
248
|
+
)
|
249
|
+
|
225
250
|
test_visibility.trace_test(test_name, test_suite_name, service: service, tags: tags, &block)
|
226
251
|
end
|
227
252
|
|
@@ -248,6 +273,11 @@ module Datadog
|
|
248
273
|
# @return [Datadog::CI::Test] the active, unfinished {Datadog::CI::Test}.
|
249
274
|
# @return [nil] if CI mode is disabled.
|
250
275
|
def start_test(test_name, test_suite_name, service: nil, tags: {})
|
276
|
+
Utils::Telemetry.inc(
|
277
|
+
Ext::Telemetry::METRIC_MANUAL_API_EVENTS,
|
278
|
+
1,
|
279
|
+
{Ext::Telemetry::TAG_EVENT_TYPE => Ext::Telemetry::EventType::TEST}
|
280
|
+
)
|
251
281
|
test_visibility.trace_test(test_name, test_suite_name, service: service, tags: tags)
|
252
282
|
end
|
253
283
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datadog-ci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: datadog
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '2.
|
26
|
+
version: '2.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: msgpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,11 +126,13 @@ files:
|
|
126
126
|
- lib/datadog/ci/ext/environment/providers/user_defined_tags.rb
|
127
127
|
- lib/datadog/ci/ext/git.rb
|
128
128
|
- lib/datadog/ci/ext/settings.rb
|
129
|
+
- lib/datadog/ci/ext/telemetry.rb
|
129
130
|
- lib/datadog/ci/ext/test.rb
|
130
131
|
- lib/datadog/ci/ext/transport.rb
|
131
132
|
- lib/datadog/ci/git/local_repository.rb
|
132
133
|
- lib/datadog/ci/git/packfiles.rb
|
133
134
|
- lib/datadog/ci/git/search_commits.rb
|
135
|
+
- lib/datadog/ci/git/telemetry.rb
|
134
136
|
- lib/datadog/ci/git/tree_uploader.rb
|
135
137
|
- lib/datadog/ci/git/upload_packfile.rb
|
136
138
|
- lib/datadog/ci/git/user.rb
|
@@ -143,11 +145,11 @@ files:
|
|
143
145
|
- lib/datadog/ci/test_optimisation/coverage/transport.rb
|
144
146
|
- lib/datadog/ci/test_optimisation/coverage/writer.rb
|
145
147
|
- lib/datadog/ci/test_optimisation/skippable.rb
|
148
|
+
- lib/datadog/ci/test_optimisation/telemetry.rb
|
146
149
|
- lib/datadog/ci/test_session.rb
|
147
150
|
- lib/datadog/ci/test_suite.rb
|
148
151
|
- lib/datadog/ci/test_visibility/component.rb
|
149
|
-
- lib/datadog/ci/test_visibility/context
|
150
|
-
- lib/datadog/ci/test_visibility/context/local.rb
|
152
|
+
- lib/datadog/ci/test_visibility/context.rb
|
151
153
|
- lib/datadog/ci/test_visibility/flush.rb
|
152
154
|
- lib/datadog/ci/test_visibility/null_component.rb
|
153
155
|
- lib/datadog/ci/test_visibility/serializers/base.rb
|
@@ -159,8 +161,13 @@ files:
|
|
159
161
|
- lib/datadog/ci/test_visibility/serializers/test_suite.rb
|
160
162
|
- lib/datadog/ci/test_visibility/serializers/test_v1.rb
|
161
163
|
- lib/datadog/ci/test_visibility/serializers/test_v2.rb
|
164
|
+
- lib/datadog/ci/test_visibility/store/global.rb
|
165
|
+
- lib/datadog/ci/test_visibility/store/local.rb
|
166
|
+
- lib/datadog/ci/test_visibility/telemetry.rb
|
162
167
|
- lib/datadog/ci/test_visibility/transport.rb
|
163
168
|
- lib/datadog/ci/transport/adapters/net.rb
|
169
|
+
- lib/datadog/ci/transport/adapters/net_http_client.rb
|
170
|
+
- lib/datadog/ci/transport/adapters/telemetry_webmock_safe_adapter.rb
|
164
171
|
- lib/datadog/ci/transport/api/agentless.rb
|
165
172
|
- lib/datadog/ci/transport/api/base.rb
|
166
173
|
- lib/datadog/ci/transport/api/builder.rb
|
@@ -169,10 +176,13 @@ files:
|
|
169
176
|
- lib/datadog/ci/transport/gzip.rb
|
170
177
|
- lib/datadog/ci/transport/http.rb
|
171
178
|
- lib/datadog/ci/transport/remote_settings_api.rb
|
179
|
+
- lib/datadog/ci/transport/telemetry.rb
|
172
180
|
- lib/datadog/ci/utils/bundle.rb
|
173
181
|
- lib/datadog/ci/utils/configuration.rb
|
174
182
|
- lib/datadog/ci/utils/git.rb
|
183
|
+
- lib/datadog/ci/utils/identity.rb
|
175
184
|
- lib/datadog/ci/utils/parsing.rb
|
185
|
+
- lib/datadog/ci/utils/telemetry.rb
|
176
186
|
- lib/datadog/ci/utils/test_run.rb
|
177
187
|
- lib/datadog/ci/version.rb
|
178
188
|
- lib/datadog/ci/worker.rb
|