bugsnag-maze-runner 7.30.0 → 7.30.2

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: 3c132077721ff7826d0a4e3735f61ddfeaacc94c85adc0da7f638e0b8469c867
4
- data.tar.gz: b62473d6c7a69a7d7f2be846e142f4860d1485ddd24b7e70647828971d7b0909
3
+ metadata.gz: 75bf49e2ef2be5fb751ede3a2d633f82c876680c213979585a15848368e58e6e
4
+ data.tar.gz: c0c0f2172353f1cfd0db10966b5080cb1fdf899dda0fa2a89ccf76930f95f5a1
5
5
  SHA512:
6
- metadata.gz: 2d8e5613c8a6f989f21cb1bf51b86248ae9f70acbaf10521e7ef41621ea2e5e21e320da23d5d2c736f3b269de1e0a23d0623bcfd3b7c1df54992c5d26c883dd6
7
- data.tar.gz: 95143189aa779a5b8c8ac5bec5214bc9705ccba94165d2158fca2e4a6cd55100a1dc45369b307cd99a73642198334729732d94215f7c905074f13743a55c5dcb
6
+ metadata.gz: a37a7e7cf01aba09e4002839e505e9f544d961c342e5abbefef32f662ff3c162db67da2616cb7fd6ce58a7997853d0bd657637a6ab3fcbbfb4f6b0a037a30713
7
+ data.tar.gz: 801b67b0e8713096551a907d9fdd7b1d522efd6aef8bf37af9a57cdf974128b6d3ec10de3ddaeb893a94a7fc64b2f3f2a4a984f05970d1eca775dc1cedb54233
@@ -25,6 +25,10 @@ module Maze
25
25
  end
26
26
  URI.parse(url)
27
27
  end
28
+
29
+ def include_header?(key, _value)
30
+ true unless key.start_with? 'bugsnag'
31
+ end
28
32
  end
29
33
  end
30
34
  end
@@ -25,6 +25,11 @@ module Maze
25
25
  end
26
26
  URI.parse(url)
27
27
  end
28
+
29
+ def include_header?(key, value)
30
+ # Include all headers apart from the API key, which is set separately
31
+ key != 'bugsnag-api-key'
32
+ end
28
33
  end
29
34
  end
30
35
  end
@@ -18,19 +18,25 @@ module Maze
18
18
  uri = url_for_request_type
19
19
 
20
20
  Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |https|
21
- onward_request = Net::HTTP::Post.new(uri)
21
+ onward_request = Net::HTTP::Post.new(uri.path)
22
22
  onward_request.body = decompress(request)
23
23
 
24
24
  # Set all headers that are present, unless Gzip is not supported
25
25
  request.header.each do |key,value|
26
+ # Only include content-type header if gip is supported
26
27
  next if !gzip_supported && key.downcase == 'content-encoding'
27
- next if key.downcase.start_with? 'bugsnag'
28
+
29
+ # All other headers are opt-in to avoid accidental leakage
30
+ next unless include_header? key.downcase, value
28
31
 
29
32
  onward_request[key] = value
30
33
  end
34
+
35
+ # Set headers specific to the repeater
31
36
  set_headers onward_request
32
37
 
33
- https.request(onward_request)
38
+ response = https.request(onward_request)
39
+ log_response response
34
40
  end
35
41
  end
36
42
 
@@ -42,6 +48,7 @@ module Maze
42
48
 
43
49
  def decompress(request)
44
50
  if !gzip_supported && %r{^gzip$}.match(request['Content-Encoding'])
51
+
45
52
  reader = Zlib::GzipReader.new(StringIO.new(request.body))
46
53
  reader.read
47
54
  else
@@ -56,6 +63,25 @@ module Maze
56
63
  def url_for_request_type
57
64
  raise 'Method not implemented by this class'
58
65
  end
66
+
67
+ def include_header?(_key, _value)
68
+ raise 'Method not implemented by this class'
69
+ end
70
+
71
+ def log_response(response)
72
+ log "HEADERS:"
73
+ response.header.each_header do |key, value|
74
+ log " #{key}: #{value}"
75
+ end
76
+
77
+ log
78
+ log "BODY:"
79
+ log response.body
80
+ end
81
+
82
+ def log(message = '')
83
+ $logger.debug message
84
+ end
59
85
  end
60
86
  end
61
87
  end
@@ -170,8 +170,9 @@ module Maze
170
170
  # if configuration says so.
171
171
  def check_digest(request)
172
172
  header = request['Bugsnag-Integrity']
173
- if header.nil? && Maze.config.enforce_bugsnag_integrity
174
- raise 'Bugsnag-Integrity header must be present according to Maze.config.enforce_bugsnag_integrity'
173
+
174
+ if header.nil? && Maze.config.enforce_bugsnag_integrity && %i[sessions errors traces].include?(@request_type)
175
+ raise "Bugsnag-Integrity header must be present for #{@request_type} according to Maze.config.enforce_bugsnag_integrity"
175
176
  end
176
177
  return if header.nil?
177
178
 
data/lib/maze.rb CHANGED
@@ -7,7 +7,7 @@ require_relative 'maze/timers'
7
7
  # Glues the various parts of MazeRunner together that need to be accessed globally,
8
8
  # providing an alternative to the proliferation of global variables or singletons.
9
9
  module Maze
10
- VERSION = '7.30.0'
10
+ VERSION = '7.30.2'
11
11
 
12
12
  class << self
13
13
  attr_accessor :check, :driver, :internal_hooks, :mode, :start_time, :dynamic_retry, :public_address,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugsnag-maze-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.30.0
4
+ version: 7.30.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Kirkland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber