gitlab-labkit 0.31.1 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
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