gitlab-labkit 0.31.1 → 0.32.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 461e2ae3317fcc57f55038742d5e29f45c1b743cf91eb55655f67d35a82e7cc3
4
- data.tar.gz: f5793900cd880f16037355f77523062155edd7f49d346be76300340a2952f06f
3
+ metadata.gz: dd0d698d4683c94ad8c37047253ab83f4504b17a7a3162a822660b1e42512d3e
4
+ data.tar.gz: dedef03b41c33466eeec83483b82bb20e9e30987493b104cda3c14a6b2b55003
5
5
  SHA512:
6
- metadata.gz: 7dba4b73d1ecf26e6d39d21cf9e289e35f9e83a9a9639d8f7cf5da5a7e9c1ae8bf427a9afbfc9e15a9d99fe11c239329b6d72c2f548d1caa58b94b59e1d0274a
7
- data.tar.gz: 95a71558f6bedab54d16c63cfb525eaf083dc7dc4f4cfd0bedb2ac14056a9f01df475eca7906e4bfa72f043461f8f67f9dcc7bff9d3b77cbed617e08991018ad
6
+ metadata.gz: e7f5b41fc2d7b844d0b553a206136824de6f9a470e30e96281191590cc4a879eb7243e3fa6deb70452b79959a0536c77a4d2d6fbd7e7af225b076f2c72e6effc
7
+ data.tar.gz: 6bc549eb4aecdcb9ed93b6309fd7cbec8add69b816a19a25eb06be7f1ee7670d2a6f82e9555758b6fa567ce4b4860a7fd374386ea8a679d3bc14785ceaef4426
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
 
30
30
  # Please maintain alphabetical order for dev dependencies
31
31
  spec.add_development_dependency "excon", "~> 0.78.1"
32
- spec.add_development_dependency "faraday", "~> 1.2.0"
32
+ spec.add_development_dependency "faraday", "~> 1.0"
33
33
  spec.add_development_dependency "gitlab-dangerfiles", "~> 2.11.0"
34
34
  spec.add_development_dependency "gitlab-styles", "~> 6.2.0"
35
35
  spec.add_development_dependency "grpc-tools", ">= 1.37"
@@ -26,7 +26,6 @@ module Labkit
26
26
  LOG_KEY = "meta"
27
27
  CORRELATION_ID_KEY = "correlation_id"
28
28
  RAW_KEYS = [CORRELATION_ID_KEY].freeze
29
- HEADER_PREFIX = "X-Gitlab-"
30
29
 
31
30
  class << self
32
31
  def with_context(attributes = {})
@@ -71,10 +70,6 @@ module Labkit
71
70
  @known_log_keys ||= (KNOWN_KEYS.map(&method(:log_key)) + RAW_KEYS).freeze
72
71
  end
73
72
 
74
- def header_name(name)
75
- HEADER_PREFIX + log_key(name).titlecase(keep_id_suffix: true).gsub(/\W/, "-")
76
- end
77
-
78
73
  private
79
74
 
80
75
  def contexts
@@ -103,12 +98,6 @@ module Labkit
103
98
  data[CORRELATION_ID_KEY]
104
99
  end
105
100
 
106
- def to_headers
107
- to_h.except(CORRELATION_ID_KEY).transform_keys do |key|
108
- self.class.header_name(key)
109
- end
110
- end
111
-
112
101
  def get_attribute(attribute)
113
102
  raw = call_or_value(data[log_key(attribute)])
114
103
 
@@ -23,6 +23,15 @@ module Labkit
23
23
  ENV.fetch("GITLAB_LOG_LEVEL", fallback)
24
24
  end
25
25
 
26
+ def self.exclude_context!
27
+ @exclude_context = true
28
+ self
29
+ end
30
+
31
+ def self.exclude_context?
32
+ !!@exclude_context
33
+ end
34
+
26
35
  def initialize(path, level: JsonLogger.log_level)
27
36
  super
28
37
  end
@@ -31,7 +40,12 @@ module Labkit
31
40
  data = default_attributes
32
41
  data[:severity] = severity
33
42
  data[:time] = timestamp.utc.iso8601(3)
34
- data[Labkit::Correlation::CorrelationId::LOG_KEY] = Labkit::Correlation::CorrelationId.current_id
43
+
44
+ if self.class.exclude_context?
45
+ data[Labkit::Correlation::CorrelationId::LOG_KEY] = Labkit::Correlation::CorrelationId.current_id
46
+ else
47
+ data.merge!(Labkit::Context.current.to_h)
48
+ end
35
49
 
36
50
  case message
37
51
  when String
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "action_dispatch"
4
+ require "json"
4
5
 
5
6
  module Labkit
6
7
  module Middleware
8
+ HEADER = "X-Gitlab-Meta"
9
+
7
10
  # This is a rack middleware to be inserted in GitLab-rails
8
11
  # It makes sure that there's always a root context containing the correlation
9
12
  # id.
@@ -15,8 +18,12 @@ module Labkit
15
18
  end
16
19
 
17
20
  def call(env)
18
- Labkit::Context.with_context(Labkit::Context::CORRELATION_ID_KEY => correlation_id(env)) do
19
- @app.call(env)
21
+ Labkit::Context.with_context(Labkit::Context::CORRELATION_ID_KEY => correlation_id(env)) do |context|
22
+ status, headers, response = @app.call(env)
23
+
24
+ headers[HEADER] = context_to_json(context)
25
+
26
+ [status, headers, response]
20
27
  end
21
28
  end
22
29
 
@@ -29,6 +36,14 @@ module Labkit
29
36
  def request(env)
30
37
  ActionDispatch::Request.new(env)
31
38
  end
39
+
40
+ def context_to_json(context)
41
+ context
42
+ .to_h
43
+ .transform_keys { |k| k.delete_prefix("meta.") }
44
+ .merge("version" => "1")
45
+ .to_json
46
+ end
32
47
  end
33
48
  end
34
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-labkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.1
4
+ version: 0.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Newdigate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-06 00:00:00.000000000 Z
11
+ date: 2023-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -146,14 +146,14 @@ dependencies:
146
146
  requirements:
147
147
  - - "~>"
148
148
  - !ruby/object:Gem::Version
149
- version: 1.2.0
149
+ version: '1.0'
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
154
  - - "~>"
155
155
  - !ruby/object:Gem::Version
156
- version: 1.2.0
156
+ version: '1.0'
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: gitlab-dangerfiles
159
159
  requirement: !ruby/object:Gem::Requirement