gitlab-labkit 0.37.0 → 0.40.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/.copier-answers.yml +16 -0
- data/.editorconfig +28 -0
- data/.gitlab-ci-asdf-versions.yml +5 -0
- data/.gitlab-ci.yml +32 -37
- data/.gitleaks.toml +10 -0
- data/.mise.toml +8 -0
- data/.pre-commit-config.yaml +38 -0
- data/.releaserc.json +19 -0
- data/.rubocop.yml +1 -58
- data/.rubocop_todo.yml +399 -77
- data/.tool-versions +3 -1
- data/.yamllint.yaml +11 -0
- data/CODEOWNERS +4 -0
- data/Dangerfile +7 -1
- data/LICENSE +1 -3
- data/README.md +6 -5
- data/Rakefile +14 -24
- data/config/covered_experiences/schema.json +35 -0
- data/config/covered_experiences/testing_sample.yml +4 -0
- data/gitlab-labkit.gemspec +13 -8
- data/lib/gitlab-labkit.rb +3 -1
- data/lib/labkit/context.rb +1 -0
- data/lib/labkit/covered_experience/README.md +134 -0
- data/lib/labkit/covered_experience/error.rb +9 -0
- data/lib/labkit/covered_experience/experience.rb +198 -0
- data/lib/labkit/covered_experience/null.rb +22 -0
- data/lib/labkit/covered_experience/registry.rb +105 -0
- data/lib/labkit/covered_experience.rb +69 -0
- data/lib/labkit/logging/json_logger.rb +11 -0
- data/lib/labkit/metrics/README.md +98 -0
- data/lib/labkit/metrics/client.rb +90 -0
- data/lib/labkit/metrics/null.rb +20 -0
- data/lib/labkit/metrics/rack_exporter.rb +12 -0
- data/lib/labkit/metrics/registry.rb +69 -0
- data/lib/labkit/metrics.rb +19 -0
- data/lib/labkit/rspec/README.md +121 -0
- data/lib/labkit/rspec/matchers/covered_experience_matchers.rb +198 -0
- data/lib/labkit/rspec/matchers.rb +10 -0
- data/renovate.json +7 -0
- data/scripts/install-asdf-plugins.sh +13 -0
- data/scripts/prepare-dev-env.sh +68 -0
- data/scripts/update-asdf-version-variables.sh +30 -0
- metadata +115 -34
- data/.ruby-version +0 -1
@@ -0,0 +1,198 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# RSpec matchers for testing Labkit CoveredExperience functionality
|
4
|
+
#
|
5
|
+
# This file must be explicitly required in your test setup:
|
6
|
+
# require 'labkit/rspec/matchers'
|
7
|
+
|
8
|
+
raise LoadError, "RSpec is not loaded. Please require 'rspec' before requiring 'labkit/rspec/matchers'" unless defined?(RSpec)
|
9
|
+
|
10
|
+
module Labkit
|
11
|
+
module RSpec
|
12
|
+
module Matchers
|
13
|
+
# Helper module for CoveredExperience functionality
|
14
|
+
module CoveredExperience
|
15
|
+
def attributes(covered_experience_id)
|
16
|
+
raise ArgumentError, "covered_experience_id is required" if covered_experience_id.nil?
|
17
|
+
|
18
|
+
definition = Labkit::CoveredExperience::Registry.new[covered_experience_id]
|
19
|
+
definition.to_h.slice(:covered_experience, :feature_category, :urgency)
|
20
|
+
end
|
21
|
+
|
22
|
+
def checkpoint_counter
|
23
|
+
Labkit::Metrics::Client.get(:gitlab_covered_experience_checkpoint_total)
|
24
|
+
end
|
25
|
+
|
26
|
+
def total_counter
|
27
|
+
Labkit::Metrics::Client.get(:gitlab_covered_experience_total)
|
28
|
+
end
|
29
|
+
|
30
|
+
def apdex_counter
|
31
|
+
Labkit::Metrics::Client.get(:gitlab_covered_experience_apdex_total)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Matcher for verifying CoveredExperience start metrics instrumentation.
|
39
|
+
#
|
40
|
+
# Usage:
|
41
|
+
# expect { subject }.to start_covered_experience('rails_request')
|
42
|
+
#
|
43
|
+
# This matcher verifies that the following metric is incremented:
|
44
|
+
# - gitlab_covered_experience_checkpoint_total (with checkpoint=start)
|
45
|
+
#
|
46
|
+
# Parameters:
|
47
|
+
# - covered_experience_id: Required. The ID of the covered experience (e.g., 'rails_request')
|
48
|
+
RSpec::Matchers.define :start_covered_experience do |covered_experience_id|
|
49
|
+
include Labkit::RSpec::Matchers::CoveredExperience
|
50
|
+
|
51
|
+
description { "start covered experience '#{covered_experience_id}'" }
|
52
|
+
supports_block_expectations
|
53
|
+
|
54
|
+
match do |actual|
|
55
|
+
labels = attributes(covered_experience_id)
|
56
|
+
|
57
|
+
checkpoint_before = checkpoint_counter&.get(labels.merge(checkpoint: "start")).to_i
|
58
|
+
|
59
|
+
actual.call
|
60
|
+
|
61
|
+
checkpoint_after = checkpoint_counter&.get(labels.merge(checkpoint: "start")).to_i
|
62
|
+
|
63
|
+
@checkpoint_change = checkpoint_after - checkpoint_before
|
64
|
+
|
65
|
+
@checkpoint_change == 1
|
66
|
+
end
|
67
|
+
|
68
|
+
failure_message do
|
69
|
+
"Failed to checkpoint covered experience '#{covered_experience_id}':\n" \
|
70
|
+
"expected checkpoint='start' counter to increase by 1, but increased by #{@checkpoint_change}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Matcher for verifying CoveredExperience checkpoint metrics instrumentation.
|
75
|
+
#
|
76
|
+
# Usage:
|
77
|
+
# expect { subject }.to checkpoint_covered_experience('rails_request')
|
78
|
+
#
|
79
|
+
# This matcher verifies that the following metric is incremented:
|
80
|
+
# - gitlab_covered_experience_checkpoint_total (with checkpoint=intermediate)
|
81
|
+
#
|
82
|
+
# Parameters:
|
83
|
+
# - covered_experience_id: Required. The ID of the covered experience (e.g., 'rails_request')
|
84
|
+
RSpec::Matchers.define :checkpoint_covered_experience do |covered_experience_id|
|
85
|
+
include Labkit::RSpec::Matchers::CoveredExperience
|
86
|
+
|
87
|
+
description { "checkpoint covered experience '#{covered_experience_id}'" }
|
88
|
+
supports_block_expectations
|
89
|
+
|
90
|
+
match do |actual|
|
91
|
+
labels = attributes(covered_experience_id)
|
92
|
+
|
93
|
+
checkpoint_before = checkpoint_counter&.get(labels.merge(checkpoint: "intermediate")).to_i
|
94
|
+
|
95
|
+
actual.call
|
96
|
+
|
97
|
+
checkpoint_after = checkpoint_counter&.get(labels.merge(checkpoint: "intermediate")).to_i
|
98
|
+
@checkpoint_change = checkpoint_after - checkpoint_before
|
99
|
+
|
100
|
+
@checkpoint_change == 1
|
101
|
+
end
|
102
|
+
|
103
|
+
failure_message do
|
104
|
+
"Failed to checkpoint covered experience '#{covered_experience_id}':\n" \
|
105
|
+
"expected checkpoint='intermediate' counter to increase by 1, but increased by #{@checkpoint_change}"
|
106
|
+
end
|
107
|
+
|
108
|
+
match_when_negated do |actual|
|
109
|
+
labels = attributes(covered_experience_id)
|
110
|
+
|
111
|
+
checkpoint_before = checkpoint_counter&.get(labels.merge(checkpoint: "intermediate")).to_i
|
112
|
+
|
113
|
+
actual.call
|
114
|
+
|
115
|
+
checkpoint_after = checkpoint_counter&.get(labels.merge(checkpoint: "intermediate")).to_i
|
116
|
+
@checkpoint_change = checkpoint_after - checkpoint_before
|
117
|
+
|
118
|
+
@checkpoint_change.zero?
|
119
|
+
end
|
120
|
+
|
121
|
+
failure_message_when_negated do
|
122
|
+
"Expected covered experience '#{covered_experience_id}' NOT to checkpoint:\n" \
|
123
|
+
"expected checkpoint='intermediate' counter to increase by 0, but increased by #{@checkpoint_change}"
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
# Matcher for verifying CoveredExperience completion metrics instrumentation.
|
128
|
+
#
|
129
|
+
# Usage:
|
130
|
+
# expect { subject }.to complete_covered_experience('rails_request')
|
131
|
+
#
|
132
|
+
# This matcher verifies that the following metrics are incremented with specific labels:
|
133
|
+
# - gitlab_covered_experience_checkpoint_total (with checkpoint=end)
|
134
|
+
# - gitlab_covered_experience_total (with error=false)
|
135
|
+
# - gitlab_covered_experience_apdex_total (with success=true)
|
136
|
+
#
|
137
|
+
# Parameters:
|
138
|
+
# - covered_experience_id: Required. The ID of the covered experience (e.g., 'rails_request')
|
139
|
+
# - error: Optional. The expected error flag for gitlab_covered_experience_total (false by default)
|
140
|
+
# - success: Optional. The expected success flag for gitlab_covered_experience_apdex_total (true by default)
|
141
|
+
RSpec::Matchers.define :complete_covered_experience do |covered_experience_id, error: false, success: true|
|
142
|
+
include Labkit::RSpec::Matchers::CoveredExperience
|
143
|
+
|
144
|
+
description { "complete covered experience '#{covered_experience_id}'" }
|
145
|
+
supports_block_expectations
|
146
|
+
|
147
|
+
match do |actual|
|
148
|
+
labels = attributes(covered_experience_id)
|
149
|
+
|
150
|
+
checkpoint_before = checkpoint_counter&.get(labels.merge(checkpoint: "end")).to_i
|
151
|
+
total_before = total_counter&.get(labels.merge(error: error)).to_i
|
152
|
+
apdex_before = apdex_counter&.get(labels.merge(success: success)).to_i
|
153
|
+
|
154
|
+
actual.call
|
155
|
+
|
156
|
+
checkpoint_after = checkpoint_counter&.get(labels.merge(checkpoint: "end")).to_i
|
157
|
+
total_after = total_counter&.get(labels.merge(error: error)).to_i
|
158
|
+
apdex_after = apdex_counter&.get(labels.merge(success: success)).to_i
|
159
|
+
@checkpoint_change = checkpoint_after - checkpoint_before
|
160
|
+
@total_change = total_after - total_before
|
161
|
+
@apdex_change = apdex_after - apdex_before
|
162
|
+
|
163
|
+
@checkpoint_change == 1 && @total_change == 1 && @apdex_change == (error ? 0 : 1)
|
164
|
+
end
|
165
|
+
|
166
|
+
failure_message do
|
167
|
+
"Failed to complete covered experience '#{covered_experience_id}':\n" \
|
168
|
+
"expected checkpoint='end' counter to increase by 1, but increased by #{@checkpoint_change}\n" \
|
169
|
+
"expected total='error: #{error}' counter to increase by 1, but increased by #{@total_change}\n" \
|
170
|
+
"expected apdex='success: #{success}' counter to increase by 1, but increased by #{@apdex_change}"
|
171
|
+
end
|
172
|
+
|
173
|
+
match_when_negated do |actual|
|
174
|
+
labels = attributes(covered_experience_id)
|
175
|
+
|
176
|
+
checkpoint_before = checkpoint_counter&.get(labels.merge(checkpoint: "end")).to_i
|
177
|
+
total_before = total_counter&.get(labels.merge(error: error)).to_i
|
178
|
+
apdex_before = apdex_counter&.get(labels.merge(success: success)).to_i
|
179
|
+
|
180
|
+
actual.call
|
181
|
+
|
182
|
+
checkpoint_after = checkpoint_counter&.get(labels.merge(checkpoint: "end")).to_i
|
183
|
+
total_after = total_counter&.get(labels.merge(error: error)).to_i
|
184
|
+
apdex_after = apdex_counter&.get(labels.merge(success: success)).to_i
|
185
|
+
@checkpoint_change = checkpoint_after - checkpoint_before
|
186
|
+
@total_change = total_after - total_before
|
187
|
+
@apdex_change = apdex_after - apdex_before
|
188
|
+
|
189
|
+
@checkpoint_change.zero? && @total_change.zero? && @apdex_change == (error ? 1 : 0)
|
190
|
+
end
|
191
|
+
|
192
|
+
failure_message_when_negated do
|
193
|
+
"Failed covered experience '#{covered_experience_id}' NOT to complete:\n" \
|
194
|
+
"expected checkpoint='end' counter to increase by 0, but increased by #{@checkpoint_change}\n" \
|
195
|
+
"expected total='error: #{error}' counter to increase by 0, but increased by #{@total_change}\n" \
|
196
|
+
"expected apdex='success: #{success}' counter to increase by 0, but increased by #{@apdex_change}"
|
197
|
+
end
|
198
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# RSpec matchers loader for Labkit
|
4
|
+
#
|
5
|
+
# This file loads all available RSpec matchers for Labkit.
|
6
|
+
# It must be explicitly required in your test setup.
|
7
|
+
|
8
|
+
raise LoadError, "RSpec is not loaded. Please require 'rspec' before requiring 'labkit/rspec/matchers'" unless defined?(RSpec)
|
9
|
+
|
10
|
+
require_relative 'matchers/covered_experience_matchers'
|
data/renovate.json
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
# Vendored from https://gitlab.com/gitlab-com/gl-infra/common-template-copier
|
3
|
+
# Consider contributing upstream when updating this file
|
4
|
+
|
5
|
+
# This file is deprecated: going forward running `mise install` should be sufficient.
|
6
|
+
|
7
|
+
set -euo pipefail
|
8
|
+
IFS=$'\n\t'
|
9
|
+
|
10
|
+
echo >&2 -e "2024-08-07: this file is deprecated: going forward, simply run 'mise install' to install plugins."
|
11
|
+
echo >&2 -e "Recommended reading: https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/docs/developer-setup.md"
|
12
|
+
|
13
|
+
mise install
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
# Vendored from https://gitlab.com/gitlab-com/gl-infra/common-template-copier
|
3
|
+
# Consider contributing upstream when updating this file
|
4
|
+
|
5
|
+
set -euo pipefail
|
6
|
+
|
7
|
+
# ---------------------------------------------------------
|
8
|
+
# This script will prepare your development environment
|
9
|
+
# while working on this project. Run it after cloning this
|
10
|
+
# project.
|
11
|
+
#
|
12
|
+
# It's recommended that you review
|
13
|
+
# https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/docs/developer-setup.md
|
14
|
+
# first.
|
15
|
+
# ---------------------------------------------------------
|
16
|
+
|
17
|
+
cd "$(dirname "${BASH_SOURCE[0]}")/.."
|
18
|
+
|
19
|
+
warn() {
|
20
|
+
echo >&2 -e "${1-}"
|
21
|
+
echo >&2 -e "Recommended reading: https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/docs/developer-setup.md"
|
22
|
+
}
|
23
|
+
|
24
|
+
if command -v mise >/dev/null; then
|
25
|
+
echo >&2 -e "mise installed..."
|
26
|
+
elif command -v rtx >/dev/null; then
|
27
|
+
warn "⚠️ 2024-01-02: 'rtx' has changed to 'mise'; please replace 'rtx' with 'mise'"
|
28
|
+
exit 1
|
29
|
+
elif [[ -n ${ASDF_DIR-} ]]; then
|
30
|
+
warn "⚠️ 2024-08-07: 'asdf' is no longer supported; please uninstall and replace with 'mise'"
|
31
|
+
exit 1
|
32
|
+
else
|
33
|
+
warn "mise is not installed."
|
34
|
+
exit 1
|
35
|
+
fi
|
36
|
+
|
37
|
+
# Do some validation to ensure that the environment is not misconfigured, as this may
|
38
|
+
# save a bunch of debugging effort down the line.
|
39
|
+
|
40
|
+
# Detect Rosetta 2
|
41
|
+
if [[ $(uname -m) == "arm64" ]] && [[ $(uname -p) == "x86_64" ]]; then
|
42
|
+
echo "This shell is running in Rosetta emulating x86_64. Please use native mode Apple Silicon." >&2
|
43
|
+
echo "For help visit https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/docs/developer-setup.md" >&2
|
44
|
+
exit 1
|
45
|
+
fi
|
46
|
+
|
47
|
+
# Detect ancient versions of bash
|
48
|
+
if ((BASH_VERSINFO[0] < 4)); then
|
49
|
+
echo "You're running bash < v4.0.0. Please upgrade to a newer version." >&2
|
50
|
+
echo "For help visit https://gitlab.com/gitlab-com/gl-infra/common-ci-tasks/-/blob/main/docs/developer-setup.md" >&2
|
51
|
+
exit 1
|
52
|
+
fi
|
53
|
+
|
54
|
+
# install mise/asdf dependencies
|
55
|
+
echo "installing required plugins with mise install.."
|
56
|
+
mise plugins update
|
57
|
+
mise install
|
58
|
+
eval "$(mise activate bash)"
|
59
|
+
|
60
|
+
# pre-commit is optional
|
61
|
+
if command -v pre-commit &>/dev/null; then
|
62
|
+
echo "running pre-commit install..."
|
63
|
+
pre-commit install
|
64
|
+
pre-commit install-hooks
|
65
|
+
pre-commit install --hook-type commit-msg
|
66
|
+
else
|
67
|
+
warn "pre-commit is not installed. Skipping."
|
68
|
+
fi
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
# Vendored from https://gitlab.com/gitlab-com/gl-infra/common-template-copier
|
3
|
+
# Consider contributing upstream when updating this file
|
4
|
+
|
5
|
+
# See the README.md for details of how this script works
|
6
|
+
|
7
|
+
set -euo pipefail
|
8
|
+
IFS=$'\n\t'
|
9
|
+
|
10
|
+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
11
|
+
|
12
|
+
export LANG=C LC_ALL=C
|
13
|
+
|
14
|
+
generate() {
|
15
|
+
sort "${ROOT_DIR}/.tool-versions" |
|
16
|
+
awk '
|
17
|
+
BEGIN {
|
18
|
+
print "# DO NOT MANUALLY EDIT; Run ./scripts/update-asdf-version-variables.sh to update this";
|
19
|
+
print "variables:"
|
20
|
+
}
|
21
|
+
{
|
22
|
+
if (!/^#/ && $1 != "" && $2 != "system") {
|
23
|
+
gsub("-", "_", $1);
|
24
|
+
print " GL_ASDF_" toupper($1) "_VERSION: \"" $2 "\""
|
25
|
+
}
|
26
|
+
}
|
27
|
+
'
|
28
|
+
}
|
29
|
+
|
30
|
+
generate >"${ROOT_DIR}/.gitlab-ci-asdf-versions.yml"
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-labkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.40.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Newdigate
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: actionpack
|
@@ -64,6 +63,20 @@ dependencies:
|
|
64
63
|
- - ">="
|
65
64
|
- !ruby/object:Gem::Version
|
66
65
|
version: '1.62'
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: google-protobuf
|
68
|
+
requirement: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '3'
|
73
|
+
type: :runtime
|
74
|
+
prerelease: false
|
75
|
+
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '3'
|
67
80
|
- !ruby/object:Gem::Dependency
|
68
81
|
name: jaeger-client
|
69
82
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +91,20 @@ dependencies:
|
|
78
91
|
- - "~>"
|
79
92
|
- !ruby/object:Gem::Version
|
80
93
|
version: 1.1.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: json-schema
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '5.1'
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '5.1'
|
81
108
|
- !ruby/object:Gem::Dependency
|
82
109
|
name: opentracing
|
83
110
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +125,7 @@ dependencies:
|
|
98
125
|
requirements:
|
99
126
|
- - ">="
|
100
127
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
128
|
+
version: 6.1.0
|
102
129
|
- - "<"
|
103
130
|
- !ruby/object:Gem::Version
|
104
131
|
version: '7.0'
|
@@ -108,10 +135,24 @@ dependencies:
|
|
108
135
|
requirements:
|
109
136
|
- - ">="
|
110
137
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
138
|
+
version: 6.1.0
|
112
139
|
- - "<"
|
113
140
|
- !ruby/object:Gem::Version
|
114
141
|
version: '7.0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: prometheus-client-mmap
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - "~>"
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: 1.2.9
|
149
|
+
type: :runtime
|
150
|
+
prerelease: false
|
151
|
+
version_requirements: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - "~>"
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: 1.2.9
|
115
156
|
- !ruby/object:Gem::Dependency
|
116
157
|
name: redis
|
117
158
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,14 +221,14 @@ dependencies:
|
|
180
221
|
requirements:
|
181
222
|
- - "~>"
|
182
223
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
224
|
+
version: 13.0.2
|
184
225
|
type: :development
|
185
226
|
prerelease: false
|
186
227
|
version_requirements: !ruby/object:Gem::Requirement
|
187
228
|
requirements:
|
188
229
|
- - "~>"
|
189
230
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
231
|
+
version: 13.0.2
|
191
232
|
- !ruby/object:Gem::Dependency
|
192
233
|
name: grpc-tools
|
193
234
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,28 +249,42 @@ dependencies:
|
|
208
249
|
requirements:
|
209
250
|
- - "~>"
|
210
251
|
- !ruby/object:Gem::Version
|
211
|
-
version: 0.
|
252
|
+
version: 0.22.0
|
212
253
|
type: :development
|
213
254
|
prerelease: false
|
214
255
|
version_requirements: !ruby/object:Gem::Requirement
|
215
256
|
requirements:
|
216
257
|
- - "~>"
|
217
258
|
- !ruby/object:Gem::Version
|
218
|
-
version: 0.
|
259
|
+
version: 0.22.0
|
219
260
|
- !ruby/object:Gem::Dependency
|
220
261
|
name: httpclient
|
221
262
|
requirement: !ruby/object:Gem::Requirement
|
222
263
|
requirements:
|
223
264
|
- - "~>"
|
224
265
|
- !ruby/object:Gem::Version
|
225
|
-
version: 2.
|
266
|
+
version: 2.9.0
|
226
267
|
type: :development
|
227
268
|
prerelease: false
|
228
269
|
version_requirements: !ruby/object:Gem::Requirement
|
229
270
|
requirements:
|
230
271
|
- - "~>"
|
231
272
|
- !ruby/object:Gem::Version
|
232
|
-
version: 2.
|
273
|
+
version: 2.9.0
|
274
|
+
- !ruby/object:Gem::Dependency
|
275
|
+
name: irb
|
276
|
+
requirement: !ruby/object:Gem::Requirement
|
277
|
+
requirements:
|
278
|
+
- - "~>"
|
279
|
+
- !ruby/object:Gem::Version
|
280
|
+
version: 1.15.2
|
281
|
+
type: :development
|
282
|
+
prerelease: false
|
283
|
+
version_requirements: !ruby/object:Gem::Requirement
|
284
|
+
requirements:
|
285
|
+
- - "~>"
|
286
|
+
- !ruby/object:Gem::Version
|
287
|
+
version: 1.15.2
|
233
288
|
- !ruby/object:Gem::Dependency
|
234
289
|
name: pry
|
235
290
|
requirement: !ruby/object:Gem::Requirement
|
@@ -244,6 +299,20 @@ dependencies:
|
|
244
299
|
- - "~>"
|
245
300
|
- !ruby/object:Gem::Version
|
246
301
|
version: '0.12'
|
302
|
+
- !ruby/object:Gem::Dependency
|
303
|
+
name: pry-byebug
|
304
|
+
requirement: !ruby/object:Gem::Requirement
|
305
|
+
requirements:
|
306
|
+
- - "~>"
|
307
|
+
- !ruby/object:Gem::Version
|
308
|
+
version: '3.11'
|
309
|
+
type: :development
|
310
|
+
prerelease: false
|
311
|
+
version_requirements: !ruby/object:Gem::Requirement
|
312
|
+
requirements:
|
313
|
+
- - "~>"
|
314
|
+
- !ruby/object:Gem::Version
|
315
|
+
version: '3.11'
|
247
316
|
- !ruby/object:Gem::Dependency
|
248
317
|
name: rack
|
249
318
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,14 +333,14 @@ dependencies:
|
|
264
333
|
requirements:
|
265
334
|
- - "~>"
|
266
335
|
- !ruby/object:Gem::Version
|
267
|
-
version: '
|
336
|
+
version: '13.2'
|
268
337
|
type: :development
|
269
338
|
prerelease: false
|
270
339
|
version_requirements: !ruby/object:Gem::Requirement
|
271
340
|
requirements:
|
272
341
|
- - "~>"
|
273
342
|
- !ruby/object:Gem::Version
|
274
|
-
version: '
|
343
|
+
version: '13.2'
|
275
344
|
- !ruby/object:Gem::Dependency
|
276
345
|
name: rest-client
|
277
346
|
requirement: !ruby/object:Gem::Requirement
|
@@ -314,20 +383,6 @@ dependencies:
|
|
314
383
|
- - "~>"
|
315
384
|
- !ruby/object:Gem::Version
|
316
385
|
version: '1.0'
|
317
|
-
- !ruby/object:Gem::Dependency
|
318
|
-
name: rufo
|
319
|
-
requirement: !ruby/object:Gem::Requirement
|
320
|
-
requirements:
|
321
|
-
- - '='
|
322
|
-
- !ruby/object:Gem::Version
|
323
|
-
version: 0.9.0
|
324
|
-
type: :development
|
325
|
-
prerelease: false
|
326
|
-
version_requirements: !ruby/object:Gem::Requirement
|
327
|
-
requirements:
|
328
|
-
- - '='
|
329
|
-
- !ruby/object:Gem::Version
|
330
|
-
version: 0.9.0
|
331
386
|
- !ruby/object:Gem::Dependency
|
332
387
|
name: sidekiq
|
333
388
|
requirement: !ruby/object:Gem::Requirement
|
@@ -362,29 +417,38 @@ dependencies:
|
|
362
417
|
- - "~>"
|
363
418
|
- !ruby/object:Gem::Version
|
364
419
|
version: 1.7.0
|
365
|
-
description:
|
366
420
|
email:
|
367
421
|
- andrew@gitlab.com
|
368
422
|
executables: []
|
369
423
|
extensions: []
|
370
424
|
extra_rdoc_files: []
|
371
425
|
files:
|
426
|
+
- ".copier-answers.yml"
|
427
|
+
- ".editorconfig"
|
372
428
|
- ".env.example.sh"
|
373
429
|
- ".gitignore"
|
430
|
+
- ".gitlab-ci-asdf-versions.yml"
|
374
431
|
- ".gitlab-ci.yml"
|
375
432
|
- ".gitlab/CODEOWNERS"
|
433
|
+
- ".gitleaks.toml"
|
434
|
+
- ".mise.toml"
|
435
|
+
- ".pre-commit-config.yaml"
|
436
|
+
- ".releaserc.json"
|
376
437
|
- ".rspec"
|
377
438
|
- ".rubocop.yml"
|
378
439
|
- ".rubocop_todo.yml"
|
379
|
-
- ".ruby-version"
|
380
440
|
- ".rufo"
|
381
441
|
- ".tool-versions"
|
442
|
+
- ".yamllint.yaml"
|
443
|
+
- CODEOWNERS
|
382
444
|
- CONTRIBUTING.md
|
383
445
|
- Dangerfile
|
384
446
|
- Gemfile
|
385
447
|
- LICENSE
|
386
448
|
- README.md
|
387
449
|
- Rakefile
|
450
|
+
- config/covered_experiences/schema.json
|
451
|
+
- config/covered_experiences/testing_sample.yml
|
388
452
|
- gitlab-labkit.gemspec
|
389
453
|
- lib/gitlab-labkit.rb
|
390
454
|
- lib/labkit/context.rb
|
@@ -394,6 +458,12 @@ files:
|
|
394
458
|
- lib/labkit/correlation/grpc/client_interceptor.rb
|
395
459
|
- lib/labkit/correlation/grpc/grpc_common.rb
|
396
460
|
- lib/labkit/correlation/grpc/server_interceptor.rb
|
461
|
+
- lib/labkit/covered_experience.rb
|
462
|
+
- lib/labkit/covered_experience/README.md
|
463
|
+
- lib/labkit/covered_experience/error.rb
|
464
|
+
- lib/labkit/covered_experience/experience.rb
|
465
|
+
- lib/labkit/covered_experience/null.rb
|
466
|
+
- lib/labkit/covered_experience/registry.rb
|
397
467
|
- lib/labkit/excon_publisher.rb
|
398
468
|
- lib/labkit/fips.rb
|
399
469
|
- lib/labkit/httpclient_publisher.rb
|
@@ -402,6 +472,12 @@ files:
|
|
402
472
|
- lib/labkit/logging/grpc/server_interceptor.rb
|
403
473
|
- lib/labkit/logging/json_logger.rb
|
404
474
|
- lib/labkit/logging/sanitizer.rb
|
475
|
+
- lib/labkit/metrics.rb
|
476
|
+
- lib/labkit/metrics/README.md
|
477
|
+
- lib/labkit/metrics/client.rb
|
478
|
+
- lib/labkit/metrics/null.rb
|
479
|
+
- lib/labkit/metrics/rack_exporter.rb
|
480
|
+
- lib/labkit/metrics/registry.rb
|
405
481
|
- lib/labkit/middleware.rb
|
406
482
|
- lib/labkit/middleware/rack.rb
|
407
483
|
- lib/labkit/middleware/sidekiq.rb
|
@@ -415,6 +491,9 @@ files:
|
|
415
491
|
- lib/labkit/middleware/sidekiq/tracing/server.rb
|
416
492
|
- lib/labkit/middleware/sidekiq/tracing/sidekiq_common.rb
|
417
493
|
- lib/labkit/net_http_publisher.rb
|
494
|
+
- lib/labkit/rspec/README.md
|
495
|
+
- lib/labkit/rspec/matchers.rb
|
496
|
+
- lib/labkit/rspec/matchers/covered_experience_matchers.rb
|
418
497
|
- lib/labkit/system.rb
|
419
498
|
- lib/labkit/tracing.rb
|
420
499
|
- lib/labkit/tracing/abstract_instrumenter.rb
|
@@ -448,28 +527,30 @@ files:
|
|
448
527
|
- lib/labkit/tracing/redis/redis_interceptor_helper.rb
|
449
528
|
- lib/labkit/tracing/tracing_common.rb
|
450
529
|
- lib/labkit/tracing/tracing_utils.rb
|
530
|
+
- renovate.json
|
531
|
+
- scripts/install-asdf-plugins.sh
|
532
|
+
- scripts/prepare-dev-env.sh
|
533
|
+
- scripts/update-asdf-version-variables.sh
|
451
534
|
homepage: https://gitlab.com/gitlab-org/labkit-ruby
|
452
535
|
licenses:
|
453
536
|
- MIT
|
454
537
|
metadata:
|
455
538
|
source_code_uri: https://gitlab.com/gitlab-org/ruby/gems/labkit-ruby
|
456
|
-
post_install_message:
|
457
539
|
rdoc_options: []
|
458
540
|
require_paths:
|
459
541
|
- lib
|
460
542
|
required_ruby_version: !ruby/object:Gem::Requirement
|
461
543
|
requirements:
|
462
|
-
- - "
|
544
|
+
- - "~>"
|
463
545
|
- !ruby/object:Gem::Version
|
464
|
-
version: 2
|
546
|
+
version: '3.2'
|
465
547
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
466
548
|
requirements:
|
467
549
|
- - ">="
|
468
550
|
- !ruby/object:Gem::Version
|
469
551
|
version: '0'
|
470
552
|
requirements: []
|
471
|
-
rubygems_version: 3.
|
472
|
-
signing_key:
|
553
|
+
rubygems_version: 3.6.9
|
473
554
|
specification_version: 4
|
474
555
|
summary: Instrumentation for GitLab
|
475
556
|
test_files: []
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.1.4
|