lhc 15.1.3 → 15.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lhc.gemspec +1 -2
- data/lib/lhc/interceptors/rollbar.rb +11 -2
- data/lib/lhc/scrubbers/headers_scrubber.rb +1 -0
- data/lib/lhc/version.rb +1 -1
- data/spec/error/to_s_spec.rb +2 -2
- data/spec/interceptors/rollbar/main_spec.rb +19 -0
- data/spec/request/scrubbed_headers_spec.rb +8 -0
- metadata +3 -138
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42aac9f48f10f07bbe4db078524e5b53ac03e8851184d5206a5898f79d2433ff
|
4
|
+
data.tar.gz: 5446bcfaa0ad5d3d46123326ebd14742b7fad56c32c1658073c3baec94fa41c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 974f22ca22bce0aa13a6c0ee139f8bae16582b2186970259948fb0cf6770191771edc4279c064a93965eca0c54a229ee7bd74da95498dafb9127fd20641c1385
|
7
|
+
data.tar.gz: 806ccd323810f9bd83cd5b5ee087198d17e88d6b5e8cc04859fa42dd7670c5970273f06d7534052ea3e153f5709eaec8cee8349cc5b8dbc7299034b0bf1dd9d8
|
data/lhc.gemspec
CHANGED
@@ -15,8 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.summary = 'Advanced HTTP Client for Ruby, fueled with interceptors'
|
16
16
|
s.description = 'LHC is an extended/advanced HTTP client. Implementing basic http-communication enhancements like interceptors, exception handling, format handling, accessing response data, configuring endpoints and placeholders and fully compatible, RFC-compliant URL-template support.'
|
17
17
|
|
18
|
-
s.files
|
19
|
-
s.test_files = `git ls-files -- spec/*`.split("\n")
|
18
|
+
s.files = `git ls-files`.split("\n")
|
20
19
|
s.require_paths = ['lib']
|
21
20
|
|
22
21
|
s.requirements << 'Ruby >= 2.0.0'
|
@@ -8,7 +8,7 @@ class LHC::Rollbar < LHC::Interceptor
|
|
8
8
|
|
9
9
|
def after_response
|
10
10
|
return unless Object.const_defined?(:Rollbar)
|
11
|
-
return
|
11
|
+
return unless report?
|
12
12
|
|
13
13
|
request = response.request
|
14
14
|
additional_params = request.options.fetch(:rollbar, {})
|
@@ -29,9 +29,18 @@ class LHC::Rollbar < LHC::Interceptor
|
|
29
29
|
}.merge additional_params
|
30
30
|
begin
|
31
31
|
Rollbar.warning("Status: #{response.code} URL: #{request.url}", data)
|
32
|
-
rescue Encoding::UndefinedConversionError
|
32
|
+
rescue JSON::GeneratorError, Encoding::UndefinedConversionError
|
33
33
|
sanitized_data = data.deep_transform_values { |value| self.class.fix_invalid_encoding(value) }
|
34
34
|
Rollbar.warning("Status: #{response.code} URL: #{request.url}", sanitized_data)
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def report?
|
41
|
+
return false if response.success?
|
42
|
+
return false if response.request.error_ignored?
|
43
|
+
|
44
|
+
true
|
45
|
+
end
|
37
46
|
end
|
@@ -44,6 +44,7 @@ class LHC::HeadersScrubber < LHC::Scrubber
|
|
44
44
|
|
45
45
|
def scrub_bearer_authentication_headers?
|
46
46
|
auth_options[:bearer].present? &&
|
47
|
+
auth_options[:bearer_token] &&
|
47
48
|
scrubbed['Authorization'].present? &&
|
48
49
|
scrubbed['Authorization'].include?(auth_options[:bearer_token])
|
49
50
|
end
|
data/lib/lhc/version.rb
CHANGED
data/spec/error/to_s_spec.rb
CHANGED
@@ -15,7 +15,7 @@ describe LHC::Error do
|
|
15
15
|
expect { "#{valid} #{invalid}" }.to raise_error Encoding::CompatibilityError
|
16
16
|
end
|
17
17
|
it 'to_json on an array raises an error' do
|
18
|
-
expect { [valid, invalid].to_json }.to raise_error
|
18
|
+
expect { [valid, invalid].to_json }.to raise_error JSON::GeneratorError
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'to_s on a hash does not raise an error' do
|
@@ -23,7 +23,7 @@ describe LHC::Error do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'to_json on a hash does raise an error' do
|
26
|
-
expect { { valid: valid, invalid: invalid }.to_json }.to raise_error
|
26
|
+
expect { { valid: valid, invalid: invalid }.to_json }.to raise_error JSON::GeneratorError
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -65,5 +65,24 @@ describe LHC::Rollbar do
|
|
65
65
|
request: hash_including(url: anything, method: anything, headers: hash_including(private_key: LHC::Scrubber::SCRUB_DISPLAY), params: { api_key: LHC::Scrubber::SCRUB_DISPLAY })
|
66
66
|
)
|
67
67
|
end
|
68
|
+
|
69
|
+
context 'ignored errors' do
|
70
|
+
it 'does not report to rollbar if the error is ignored' do
|
71
|
+
stub_request(:get, 'http://local.ch').to_return(status: 404)
|
72
|
+
LHC.get('http://local.ch', ignore: [LHC::NotFound])
|
73
|
+
expect(::Rollbar).not_to have_received(:warning)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'does report to rollbar' do
|
77
|
+
stub_request(:get, 'http://local.ch').to_return(status: 400)
|
78
|
+
expect(-> { LHC.get('http://local.ch', ignore: [LHC::NotFound]) }).to raise_error LHC::BadRequest
|
79
|
+
expect(::Rollbar).not_to have_received(:warning)
|
80
|
+
.with(
|
81
|
+
'Status: 400 URL: http://local.ch',
|
82
|
+
response: hash_including(body: anything, code: anything, headers: anything, time: anything, timeout?: anything),
|
83
|
+
request: hash_including(url: anything, method: anything, headers: hash_including(private_key: LHC::Scrubber::SCRUB_DISPLAY), params: { api_key: LHC::Scrubber::SCRUB_DISPLAY })
|
84
|
+
)
|
85
|
+
end
|
86
|
+
end
|
68
87
|
end
|
69
88
|
end
|
@@ -74,6 +74,14 @@ describe LHC::Request do
|
|
74
74
|
LHC.config.scrubs = {}
|
75
75
|
expect(request.scrubbed_headers).to include(authorization_header)
|
76
76
|
end
|
77
|
+
|
78
|
+
context 'when the bearer_token is nil' do
|
79
|
+
let(:bearer_token) { nil }
|
80
|
+
|
81
|
+
it 'scrubs nothing' do
|
82
|
+
expect(request.scrubbed_headers).to include(authorization_header)
|
83
|
+
end
|
84
|
+
end
|
77
85
|
end
|
78
86
|
|
79
87
|
context 'basic authentication' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 15.1
|
4
|
+
version: 15.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhc/contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01
|
11
|
+
date: 2022-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -467,139 +467,4 @@ rubygems_version: 3.1.4
|
|
467
467
|
signing_key:
|
468
468
|
specification_version: 4
|
469
469
|
summary: Advanced HTTP Client for Ruby, fueled with interceptors
|
470
|
-
test_files:
|
471
|
-
- spec/basic_methods/delete_spec.rb
|
472
|
-
- spec/basic_methods/get_spec.rb
|
473
|
-
- spec/basic_methods/post_spec.rb
|
474
|
-
- spec/basic_methods/put_spec.rb
|
475
|
-
- spec/basic_methods/request_spec.rb
|
476
|
-
- spec/basic_methods/request_without_rails_spec.rb
|
477
|
-
- spec/config/endpoints_spec.rb
|
478
|
-
- spec/config/placeholders_spec.rb
|
479
|
-
- spec/config/scrubs_spec.rb
|
480
|
-
- spec/core_ext/hash/deep_transform_values_spec.rb
|
481
|
-
- spec/dummy/README.rdoc
|
482
|
-
- spec/dummy/Rakefile
|
483
|
-
- spec/dummy/app/assets/config/manifest.js
|
484
|
-
- spec/dummy/app/assets/images/.keep
|
485
|
-
- spec/dummy/app/assets/javascripts/application.js
|
486
|
-
- spec/dummy/app/assets/stylesheets/application.css
|
487
|
-
- spec/dummy/app/controllers/application_controller.rb
|
488
|
-
- spec/dummy/app/controllers/concerns/.keep
|
489
|
-
- spec/dummy/app/helpers/application_helper.rb
|
490
|
-
- spec/dummy/app/mailers/.keep
|
491
|
-
- spec/dummy/app/models/.keep
|
492
|
-
- spec/dummy/app/models/concerns/.keep
|
493
|
-
- spec/dummy/app/views/layouts/application.html.erb
|
494
|
-
- spec/dummy/bin/bundle
|
495
|
-
- spec/dummy/bin/rails
|
496
|
-
- spec/dummy/bin/rake
|
497
|
-
- spec/dummy/config.ru
|
498
|
-
- spec/dummy/config/application.rb
|
499
|
-
- spec/dummy/config/boot.rb
|
500
|
-
- spec/dummy/config/environment.rb
|
501
|
-
- spec/dummy/config/environments/development.rb
|
502
|
-
- spec/dummy/config/environments/production.rb
|
503
|
-
- spec/dummy/config/environments/test.rb
|
504
|
-
- spec/dummy/config/initializers/assets.rb
|
505
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
506
|
-
- spec/dummy/config/initializers/cookies_serializer.rb
|
507
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
508
|
-
- spec/dummy/config/initializers/inflections.rb
|
509
|
-
- spec/dummy/config/initializers/mime_types.rb
|
510
|
-
- spec/dummy/config/initializers/session_store.rb
|
511
|
-
- spec/dummy/config/initializers/wrap_parameters.rb
|
512
|
-
- spec/dummy/config/locales/en.yml
|
513
|
-
- spec/dummy/config/routes.rb
|
514
|
-
- spec/dummy/config/secrets.yml
|
515
|
-
- spec/dummy/lib/assets/.keep
|
516
|
-
- spec/dummy/log/.keep
|
517
|
-
- spec/dummy/public/404.html
|
518
|
-
- spec/dummy/public/422.html
|
519
|
-
- spec/dummy/public/500.html
|
520
|
-
- spec/dummy/public/favicon.ico
|
521
|
-
- spec/dummy/tmp/cache/.gitkeep
|
522
|
-
- spec/endpoint/compile_spec.rb
|
523
|
-
- spec/endpoint/match_spec.rb
|
524
|
-
- spec/endpoint/placeholders_spec.rb
|
525
|
-
- spec/endpoint/remove_interpolated_params_spec.rb
|
526
|
-
- spec/endpoint/values_as_params_spec.rb
|
527
|
-
- spec/error/dup_spec.rb
|
528
|
-
- spec/error/find_spec.rb
|
529
|
-
- spec/error/response_spec.rb
|
530
|
-
- spec/error/timeout_spec.rb
|
531
|
-
- spec/error/to_s_spec.rb
|
532
|
-
- spec/formats/form_spec.rb
|
533
|
-
- spec/formats/json_spec.rb
|
534
|
-
- spec/formats/multipart_spec.rb
|
535
|
-
- spec/formats/plain_spec.rb
|
536
|
-
- spec/interceptors/after_request_spec.rb
|
537
|
-
- spec/interceptors/after_response_spec.rb
|
538
|
-
- spec/interceptors/auth/basic_auth_spec.rb
|
539
|
-
- spec/interceptors/auth/bearer_spec.rb
|
540
|
-
- spec/interceptors/auth/body_spec.rb
|
541
|
-
- spec/interceptors/auth/long_basic_auth_credentials_spec.rb
|
542
|
-
- spec/interceptors/auth/no_instance_var_for_options_spec.rb
|
543
|
-
- spec/interceptors/auth/reauthentication_configuration_spec.rb
|
544
|
-
- spec/interceptors/auth/reauthentication_spec.rb
|
545
|
-
- spec/interceptors/before_request_spec.rb
|
546
|
-
- spec/interceptors/before_response_spec.rb
|
547
|
-
- spec/interceptors/caching/hydra_spec.rb
|
548
|
-
- spec/interceptors/caching/main_spec.rb
|
549
|
-
- spec/interceptors/caching/methods_spec.rb
|
550
|
-
- spec/interceptors/caching/multilevel_cache_spec.rb
|
551
|
-
- spec/interceptors/caching/options_spec.rb
|
552
|
-
- spec/interceptors/caching/parameters_spec.rb
|
553
|
-
- spec/interceptors/caching/response_status_spec.rb
|
554
|
-
- spec/interceptors/caching/to_cache_spec.rb
|
555
|
-
- spec/interceptors/default_interceptors_spec.rb
|
556
|
-
- spec/interceptors/default_timeout/main_spec.rb
|
557
|
-
- spec/interceptors/define_spec.rb
|
558
|
-
- spec/interceptors/dup_spec.rb
|
559
|
-
- spec/interceptors/logging/main_spec.rb
|
560
|
-
- spec/interceptors/monitoring/caching_spec.rb
|
561
|
-
- spec/interceptors/monitoring/main_spec.rb
|
562
|
-
- spec/interceptors/prometheus_spec.rb
|
563
|
-
- spec/interceptors/response_competition_spec.rb
|
564
|
-
- spec/interceptors/retry/main_spec.rb
|
565
|
-
- spec/interceptors/return_response_spec.rb
|
566
|
-
- spec/interceptors/rollbar/invalid_encoding_spec.rb
|
567
|
-
- spec/interceptors/rollbar/main_spec.rb
|
568
|
-
- spec/interceptors/throttle/main_spec.rb
|
569
|
-
- spec/interceptors/throttle/reset_track_spec.rb
|
570
|
-
- spec/interceptors/zipkin/distributed_tracing_spec.rb
|
571
|
-
- spec/rails_helper.rb
|
572
|
-
- spec/request/body_spec.rb
|
573
|
-
- spec/request/encoding_spec.rb
|
574
|
-
- spec/request/error_handling_spec.rb
|
575
|
-
- spec/request/headers_spec.rb
|
576
|
-
- spec/request/ignore_errors_spec.rb
|
577
|
-
- spec/request/option_dup_spec.rb
|
578
|
-
- spec/request/parallel_requests_spec.rb
|
579
|
-
- spec/request/params_encoding_spec.rb
|
580
|
-
- spec/request/request_without_rails_spec.rb
|
581
|
-
- spec/request/scrubbed_headers_spec.rb
|
582
|
-
- spec/request/scrubbed_options_spec.rb
|
583
|
-
- spec/request/scrubbed_params_spec.rb
|
584
|
-
- spec/request/url_patterns_spec.rb
|
585
|
-
- spec/request/user_agent_spec.rb
|
586
|
-
- spec/request/user_agent_without_rails_spec.rb
|
587
|
-
- spec/response/body_spec.rb
|
588
|
-
- spec/response/code_spec.rb
|
589
|
-
- spec/response/data_accessor_spec.rb
|
590
|
-
- spec/response/data_spec.rb
|
591
|
-
- spec/response/effective_url_spec.rb
|
592
|
-
- spec/response/headers_spec.rb
|
593
|
-
- spec/response/options_spec.rb
|
594
|
-
- spec/response/scrubbed_options_spec.rb
|
595
|
-
- spec/response/success_spec.rb
|
596
|
-
- spec/response/time_spec.rb
|
597
|
-
- spec/spec_helper.rb
|
598
|
-
- spec/support/fixtures/json/feedback.json
|
599
|
-
- spec/support/fixtures/json/feedbacks.json
|
600
|
-
- spec/support/fixtures/json/localina_content_ad.json
|
601
|
-
- spec/support/load_json.rb
|
602
|
-
- spec/support/reset_config.rb
|
603
|
-
- spec/support/zipkin_mock.rb
|
604
|
-
- spec/timeouts/no_signal_spec.rb
|
605
|
-
- spec/timeouts/timings_spec.rb
|
470
|
+
test_files: []
|