pact_broker 2.27.2 → 2.27.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +32 -0
  4. data/DEVELOPER_SETUP.md +1 -0
  5. data/example/config.ru +1 -1
  6. data/lib/pact_broker.rb +1 -0
  7. data/lib/pact_broker/api.rb +1 -0
  8. data/lib/pact_broker/api/decorators/pact_version_decorator.rb +0 -5
  9. data/lib/pact_broker/api/decorators/tagged_pact_versions_decorator.rb +46 -0
  10. data/lib/pact_broker/api/renderers/html_pact_renderer.rb +1 -1
  11. data/lib/pact_broker/api/resources/error_handler.rb +1 -0
  12. data/lib/pact_broker/api/resources/index.rb +6 -0
  13. data/lib/pact_broker/api/resources/tagged_pact_versions.rb +38 -0
  14. data/lib/pact_broker/app.rb +12 -6
  15. data/lib/pact_broker/certificates/service.rb +1 -0
  16. data/lib/pact_broker/configuration.rb +11 -16
  17. data/lib/pact_broker/db/log_quietener.rb +38 -0
  18. data/lib/pact_broker/doc/views/index/tagged-pact-versions.markdown +7 -0
  19. data/lib/pact_broker/logging.rb +25 -20
  20. data/lib/pact_broker/logging/default_formatter.rb +16 -0
  21. data/lib/pact_broker/matrix/deployment_status_summary.rb +3 -1
  22. data/lib/pact_broker/pacticipants/service.rb +1 -1
  23. data/lib/pact_broker/pacts/all_pact_publications.rb +1 -1
  24. data/lib/pact_broker/pacts/repository.rb +18 -4
  25. data/lib/pact_broker/pacts/service.rb +4 -0
  26. data/lib/pact_broker/ui/views/index/show-with-tags.haml +34 -33
  27. data/lib/pact_broker/ui/views/index/show.haml +28 -27
  28. data/lib/pact_broker/ui/views/layouts/main.haml +2 -2
  29. data/lib/pact_broker/ui/views/matrix/show.haml +126 -127
  30. data/lib/pact_broker/verifications/service.rb +3 -1
  31. data/lib/pact_broker/version.rb +1 -1
  32. data/lib/pact_broker/versions/repository.rb +3 -1
  33. data/lib/pact_broker/webhooks/job.rb +1 -0
  34. data/pact_broker.gemspec +1 -0
  35. data/script/db-spec.sh +2 -0
  36. data/spec/features/delete_tagged_pact_versions_spec.rb +28 -0
  37. data/spec/features/get_tagged_pact_versions_spec.rb +26 -0
  38. data/spec/integration/ui/index_spec.rb +2 -2
  39. data/spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb +0 -3
  40. data/spec/lib/pact_broker/api/decorators/tagged_pact_versions_decorator_spec.rb +79 -0
  41. data/spec/lib/pact_broker/api/renderers/html_pact_renderer_spec.rb +5 -6
  42. data/spec/lib/pact_broker/api/resources/error_handler_spec.rb +7 -1
  43. data/spec/lib/pact_broker/api/resources/tagged_pact_versions_spec.rb +88 -0
  44. data/spec/lib/pact_broker/badges/service_spec.rb +3 -2
  45. data/spec/lib/pact_broker/certificates/service_spec.rb +8 -3
  46. data/spec/lib/pact_broker/db/log_quietener_spec.rb +42 -0
  47. data/spec/lib/pact_broker/domain/webhook_request_spec.rb +17 -12
  48. data/spec/lib/pact_broker/domain/webhook_spec.rb +7 -2
  49. data/spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb +8 -1
  50. data/spec/lib/pact_broker/pacticipants/service_spec.rb +5 -3
  51. data/spec/lib/pact_broker/pacts/repository_spec.rb +44 -3
  52. data/spec/lib/pact_broker/verifications/service_spec.rb +6 -2
  53. data/spec/lib/pact_broker/webhooks/job_spec.rb +2 -0
  54. data/spec/lib/pact_broker/webhooks/service_spec.rb +6 -1
  55. data/spec/spec_helper.rb +13 -13
  56. data/spec/support/database.rb +5 -0
  57. data/spec/support/fixture_pact.rb +34 -0
  58. data/spec/support/logging.rb +5 -0
  59. data/spec/support/shared_context.rb +10 -0
  60. data/tasks/development.rake +12 -3
  61. metadata +40 -3
@@ -0,0 +1,42 @@
1
+ require 'pact_broker/db/log_quietener'
2
+
3
+ module PactBroker
4
+ module DB
5
+ describe Logger do
6
+ let(:logs) { StringIO.new }
7
+ let(:wrapped_logger) { ::Logger.new(logs) }
8
+
9
+ subject { LogQuietener.new(wrapped_logger) }
10
+
11
+ describe "error" do
12
+ context "when the error is for a table or view that does not exist" do
13
+ before do
14
+ subject.error("PG::UndefinedTable - some error")
15
+ end
16
+
17
+ it "logs the message at debug level" do
18
+ expect(logs.string).to include "DEBUG -- :"
19
+ end
20
+
21
+ it "appends a friendly message so people don't freak out" do
22
+ expect(logs.string).to include "PG::UndefinedTable - some error Don't panic."
23
+ end
24
+ end
25
+
26
+ context "when the error is NOT for a table or view that does not exist" do
27
+ before do
28
+ subject.error("foo bar")
29
+ end
30
+
31
+ it "logs the message at error level" do
32
+ expect(logs.string).to include "ERROR -- :"
33
+ end
34
+
35
+ it "does not appends a friendly message so people will correctly panic" do
36
+ expect(logs.string).to_not include "Don't panic."
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -11,6 +11,7 @@ module PactBroker
11
11
  let(:headers) { {'Content-Type' => 'text/plain', 'Authorization' => 'foo'} }
12
12
  let(:body) { 'reqbody' }
13
13
  let(:logs) { StringIO.new }
14
+ let(:logger) { double('logger').as_null_object }
14
15
  let(:execution_logger) { Logger.new(logs) }
15
16
  let(:options) { {failure_log_message: 'oops', show_response: show_response} }
16
17
  let(:show_response) { true }
@@ -85,6 +86,12 @@ module PactBroker
85
86
  to_return(:status => 200, :body => "respbod", :headers => {'Content-Type' => 'text/foo, blah'})
86
87
  end
87
88
 
89
+ before do
90
+ allow(WebhookRequest).to receive(:logger).and_return(logger)
91
+ allow(WebhookRequest.logger).to receive(:info)
92
+ allow(WebhookRequest.logger).to receive(:debug)
93
+ end
94
+
88
95
  let(:request_body) { 'reqbody' }
89
96
 
90
97
  it "executes the configured request" do
@@ -93,20 +100,18 @@ module PactBroker
93
100
  end
94
101
 
95
102
  it "logs the request" do
96
- allow(PactBroker.logger).to receive(:info)
97
- allow(PactBroker.logger).to receive(:debug)
98
- expect(PactBroker.logger).to receive(:info).with(/POST.*example/)
99
- expect(PactBroker.logger).to receive(:debug).with(/.*text\/plain/)
100
- expect(PactBroker.logger).to receive(:debug).with(/.*reqbody/)
103
+ expect(logger).to receive(:info).with(/POST.*example/)
104
+ expect(logger).to receive(:debug).with(/.*text\/plain/)
105
+ expect(logger).to receive(:debug).with(/.*reqbody/)
101
106
  execute
102
107
  end
103
108
 
104
109
  it "logs the response" do
105
- allow(PactBroker.logger).to receive(:info)
106
- allow(PactBroker.logger).to receive(:debug)
107
- expect(PactBroker.logger).to receive(:info).with(/response.*200/)
108
- expect(PactBroker.logger).to receive(:debug).with(/text\/foo/)
109
- expect(PactBroker.logger).to receive(:debug).with(/respbod/)
110
+ allow(logger).to receive(:info)
111
+ allow(logger).to receive(:debug)
112
+ expect(logger).to receive(:info).with(/response.*200/)
113
+ expect(logger).to receive(:debug).with(/text\/foo/)
114
+ expect(logger).to receive(:debug).with(/respbod/)
110
115
  execute
111
116
  end
112
117
 
@@ -301,11 +306,11 @@ module PactBroker
301
306
 
302
307
  before do
303
308
  allow(Net::HTTP).to receive(:start).and_raise(WebhookTestError.new("blah"))
304
- allow(PactBroker.logger).to receive(:error)
309
+ allow(logger).to receive(:error)
305
310
  end
306
311
 
307
312
  it "logs the error" do
308
- expect(PactBroker.logger).to receive(:error).with(/Error.*WebhookTestError.*blah/)
313
+ expect(logger).to receive(:error).with(/Error.*WebhookTestError.*blah/)
309
314
  execute
310
315
  end
311
316
 
@@ -11,6 +11,11 @@ module PactBroker
11
11
  let(:options) { double('options') }
12
12
  let(:pact) { double('pact') }
13
13
  let(:verification) { double('verification') }
14
+ let(:logger) { double('logger').as_null_object }
15
+
16
+ before do
17
+ allow(webhook).to receive(:logger).and_return(logger)
18
+ end
14
19
 
15
20
  subject(:webhook) { Webhook.new(request: request_template, consumer: consumer, provider: provider) }
16
21
 
@@ -59,8 +64,8 @@ module PactBroker
59
64
  end
60
65
 
61
66
  it "logs before and after" do
62
- allow(PactBroker.logger).to receive(:info)
63
- expect(PactBroker.logger).to receive(:info).with(/Executing/)
67
+ allow(logger).to receive(:info)
68
+ expect(logger).to receive(:info).with(/Executing/)
64
69
  execute
65
70
  end
66
71
  end
@@ -6,6 +6,13 @@ require 'pact_broker/matrix/integration'
6
6
  module PactBroker
7
7
  module Matrix
8
8
  describe DeploymentStatusSummary do
9
+
10
+ before do
11
+ allow(subject).to receive(:logger).and_return(logger)
12
+ end
13
+
14
+ let(:logger) { double('logger').as_null_object }
15
+
9
16
  describe ".call" do
10
17
  let(:rows) { [row_1, row_2] }
11
18
  let(:row_1) do
@@ -106,7 +113,7 @@ module PactBroker
106
113
  its(:reasons) { is_expected.to eq ["There is no verified pact between Foo (unresolved version) and Baz (4ee06460f10e8207ad904fa9fa6c4842e462ab59)"] }
107
114
 
108
115
  it "logs a warning" do
109
- expect(PactBroker.logger).to receive(:warn).with(/Could not find the resolved version/)
116
+ expect(logger).to receive(:warn).with(/Could not find the resolved version/)
110
117
  subject.reasons
111
118
  end
112
119
  end
@@ -4,11 +4,14 @@ require 'pact_broker/domain/tag'
4
4
  require 'pact_broker/domain/pact'
5
5
 
6
6
  module PactBroker
7
-
8
7
  module Pacticipants
9
8
  describe Service do
9
+ before do
10
+ allow(Service).to receive(:logger).and_return(logger)
11
+ end
10
12
 
11
13
  let(:td) { TestDataBuilder.new }
14
+ let(:logger) { double('logger').as_null_object }
12
15
 
13
16
  subject{ Service }
14
17
 
@@ -106,8 +109,7 @@ module PactBroker
106
109
  end
107
110
 
108
111
  it "logs the names" do
109
- allow(PactBroker.logger).to receive(:info)
110
- expect(PactBroker.logger).to receive(:info).with(/pacticipant_name.*Fred, Mary/)
112
+ expect(logger).to receive(:info).with(/pacticipant_name.*Fred, Mary/)
111
113
  subject.find_potential_duplicate_pacticipants pacticipant_name
112
114
  end
113
115
  end
@@ -277,17 +277,58 @@ module PactBroker
277
277
  .create_pact
278
278
  end
279
279
 
280
- subject { Repository.new.find_all_pact_versions_between consumer_name, :and => provider_name }
280
+ subject { Repository.new.find_all_pact_versions_between(consumer_name, :and => provider_name) }
281
281
 
282
282
  it "returns the pacts between the specified consumer and provider" do
283
283
  expect(subject.size).to eq 2
284
284
  expect(subject.first.consumer.name).to eq consumer_name
285
285
  expect(subject.first.provider.name).to eq provider_name
286
286
  expect(subject.first.consumer_version.number).to eq "2.3.4"
287
- expect(subject.first.consumer_version.tags.first.name).to eq "branch"
288
- expect(subject.first.consumer_version.tags.last.name).to eq "prod"
287
+ expect(subject.first.consumer_version.tags.count).to eq 2
289
288
  end
290
289
 
290
+ context "with a tag" do
291
+ subject { Repository.new.find_all_pact_versions_between(consumer_name, :and => provider_name, tag: "prod") }
292
+
293
+ it "returns the pacts between the specified consumer and provider with the given tag" do
294
+ expect(subject.size).to eq 1
295
+ expect(subject.first.consumer_version.number).to eq "2.3.4"
296
+ end
297
+ end
298
+ end
299
+
300
+ describe "#delete_all_pact_versions_between" do
301
+
302
+ before do
303
+ TestDataBuilder.new
304
+ .create_consumer(consumer_name)
305
+ .create_consumer_version("1.2.3")
306
+ .create_provider(provider_name)
307
+ .create_pact
308
+ .create_webhook
309
+ .create_triggered_webhook
310
+ .create_webhook_execution
311
+ .create_consumer_version("2.3.4")
312
+ .create_consumer_version_tag("prod")
313
+ .create_consumer_version_tag("branch")
314
+ .create_pact
315
+ .create_provider("Another Provider")
316
+ .create_pact
317
+ end
318
+
319
+ subject { Repository.new.delete_all_pact_versions_between(consumer_name, :and => provider_name) }
320
+
321
+ it "deletes the pacts between the specified consumer and provider" do
322
+ expect { subject }.to change { PactPublication.count }.by(-2)
323
+ end
324
+
325
+ context "with a tag" do
326
+ subject { Repository.new.delete_all_pact_versions_between(consumer_name, :and => provider_name, tag: "prod") }
327
+
328
+ it "deletes the pacts between the specified consumer and provider with the given tag" do
329
+ expect { subject }.to change { PactPublication.count }.by(-1)
330
+ end
331
+ end
291
332
  end
292
333
 
293
334
  describe "#find_latest_pact_versions_for_provider" do
@@ -5,6 +5,11 @@ module PactBroker
5
5
 
6
6
  module Verifications
7
7
  describe Service do
8
+ before do
9
+ allow(Service).to receive(:logger).and_return(logger)
10
+ end
11
+
12
+ let(:logger) { double('logger').as_null_object }
8
13
 
9
14
  subject { PactBroker::Verifications::Service }
10
15
 
@@ -18,8 +23,7 @@ module PactBroker
18
23
  let(:create_verification) { subject.create 3, params, pact }
19
24
 
20
25
  it "logs the creation" do
21
- allow(PactBroker.logger).to receive(:info).and_call_original
22
- expect(PactBroker.logger).to receive(:info).with(/.*verification.*3.*success/)
26
+ expect(logger).to receive(:info).with(/.*verification.*3.*success/)
23
27
  create_verification
24
28
  end
25
29
 
@@ -9,11 +9,13 @@ module PactBroker
9
9
  allow(PactBroker::Webhooks::Service).to receive(:execute_triggered_webhook_now).and_return(result)
10
10
  allow(PactBroker::Webhooks::Service).to receive(:update_triggered_webhook_status)
11
11
  allow(PactBroker::Webhooks::TriggeredWebhook).to receive(:find).and_return(triggered_webhook)
12
+ allow(Job).to receive(:logger).and_return(logger)
12
13
  end
13
14
 
14
15
  let(:triggered_webhook) { instance_double("PactBroker::Webhooks::TriggeredWebhook", webhook_uuid: '1234', id: 1) }
15
16
  let(:result) { instance_double("PactBroker::Domain::WebhookExecutionResult", success?: success)}
16
17
  let(:success) { true }
18
+ let(:logger) { double('logger').as_null_object }
17
19
 
18
20
  subject { Job.new.perform(triggered_webhook: triggered_webhook) }
19
21
 
@@ -9,7 +9,12 @@ module PactBroker
9
9
 
10
10
  module Webhooks
11
11
  describe Service do
12
+ before do
13
+ allow(Service).to receive(:logger).and_return(logger)
14
+ end
15
+
12
16
  let(:td) { TestDataBuilder.new }
17
+ let(:logger) { double('logger').as_null_object }
13
18
 
14
19
  describe ".delete_by_uuid" do
15
20
  before do
@@ -66,7 +71,7 @@ module PactBroker
66
71
  end
67
72
 
68
73
  it "logs that no webhook was found" do
69
- expect(PactBroker.logger).to receive(:debug).with(/No webhook found/)
74
+ expect(logger).to receive(:debug).with(/No webhook found/)
70
75
  subject
71
76
  end
72
77
  end
@@ -1,17 +1,12 @@
1
- require 'simplecov'
2
- SimpleCov.start
3
-
4
- ENV['RACK_ENV'] = 'test'
5
- RACK_ENV = 'test'
6
-
7
1
  $: << File.expand_path("../../", __FILE__)
8
2
 
9
- require 'db'
10
- require 'tasks/database'
11
- require 'pact_broker/db'
12
- raise "Wrong environment!!! Don't run this script!! ENV['RACK_ENV'] is #{ENV['RACK_ENV']} and RACK_ENV is #{RACK_ENV}" if ENV['RACK_ENV'] != 'test' || RACK_ENV != 'test'
13
- PactBroker::DB.connection = PactBroker::Database.database = DB::PACT_BROKER_DB
3
+ RACK_ENV = ENV['RACK_ENV'] = 'test'
4
+
5
+ require 'simplecov'
6
+ SimpleCov.start
14
7
 
8
+ require 'support/logging'
9
+ require 'support/database'
15
10
  require 'rack/test'
16
11
  require 'pact_broker/api'
17
12
  require 'rspec/its'
@@ -19,10 +14,10 @@ require 'rspec/pact/matchers'
19
14
  require 'sucker_punch/testing/inline'
20
15
  require 'webmock/rspec'
21
16
 
22
- WebMock.disable_net_connect!(allow_localhost: true)
23
-
24
17
  Dir.glob("./spec/support/**/*.rb") { |file| require file }
25
18
 
19
+ WebMock.disable_net_connect!(allow_localhost: true)
20
+
26
21
  I18n.config.enforce_available_locales = false
27
22
 
28
23
  RSpec.configure do | config |
@@ -33,7 +28,12 @@ RSpec.configure do | config |
33
28
  PactBroker::Badges::Service.clear_cache
34
29
  end
35
30
 
31
+ config.after :suite do
32
+ Pact::Fixture.check_fixtures
33
+ end
34
+
36
35
  config.include Rack::Test::Methods
36
+ config.include Pact::Fixture
37
37
 
38
38
  config.mock_with :rspec do |mocks|
39
39
  mocks.verify_partial_doubles = true
@@ -0,0 +1,5 @@
1
+ require 'db'
2
+ require 'tasks/database'
3
+ require 'pact_broker/db'
4
+ raise "Wrong environment!!! Don't run this script!! ENV['RACK_ENV'] is #{ENV['RACK_ENV']} and RACK_ENV is #{RACK_ENV}" if ENV['RACK_ENV'] != 'test' || RACK_ENV != 'test'
5
+ PactBroker::DB.connection = PactBroker::Database.database = DB::PACT_BROKER_DB
@@ -0,0 +1,34 @@
1
+ module Pact
2
+ module Fixture
3
+
4
+ def self.fixtures
5
+ @@fixtures ||= []
6
+ end
7
+
8
+ def self.clear_fixtures
9
+ @@fixtures = []
10
+ end
11
+
12
+ def register_fixture name
13
+ source = caller.first
14
+ thing = yield
15
+ Fixture.fixtures << OpenStruct.new(name: name, thing: thing, source: source)
16
+ thing
17
+ end
18
+
19
+ def self.check_fixtures
20
+ fixtures.group_by(&:name).each do | name, fixture_group |
21
+ if fixture_group.size == 1
22
+ puts "WARN: Nothing to compare #{name} to."
23
+ else
24
+ if fixture_group.collect(&:thing).uniq.length != 1
25
+ desc = fixture_group.collect do | fixture |
26
+ "#{fixture.thing} from #{fixture.source}\n"
27
+ end.join("\n")
28
+ raise "These fixtures don't match #{fixture_group.first.name}:\n #{desc}"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ require 'semantic_logger'
2
+ require 'pact_broker/logging/default_formatter'
3
+
4
+ FileUtils.mkdir_p("log")
5
+ SemanticLogger.add_appender(file_name: "log/test.log", formatter: PactBroker::Logging::DefaultFormatter.new)
@@ -0,0 +1,10 @@
1
+ RSpec.shared_context "stubbed services" do
2
+
3
+ let(:pact_service) { class_double("PactBroker::Pacts::Service").as_stubbed_const }
4
+ let(:pacticipant_service) { class_double("PactBroker::Pacticipants::Service").as_stubbed_const }
5
+
6
+ before do
7
+ allow_any_instance_of(described_class).to receive(:pact_service).and_return(pact_service)
8
+ allow_any_instance_of(described_class).to receive(:pacticipant_service).and_return(pacticipant_service)
9
+ end
10
+ end
@@ -1,10 +1,19 @@
1
1
 
2
+ desc 'Set up a dev instance of the Pact Broker'
2
3
  task 'pact_broker:dev:setup' do
4
+ puts "Copying example directory"
3
5
  FileUtils.cp_r 'example', 'dev'
4
6
  gemfile_contents = File.read('dev/Gemfile')
7
+
8
+
9
+ puts "Changing source of pact_broker gem from rubygems.org to local file system"
5
10
  new_gemfile_contents = gemfile_contents.gsub(/^.*gem.*pact_broker.*$/, "gem 'pact_broker', path: '../'")
6
11
  File.open('dev/Gemfile', "w") { |file| file << new_gemfile_contents }
7
- bundle_install = "BUNDLE_GEMFILE=dev/Gemfile bundle install"
8
- puts bundle_install
9
- puts `#{bundle_install}`
12
+
13
+ Dir.chdir("dev") do
14
+ Bundler.with_clean_env do
15
+ puts "Executing bundle install"
16
+ puts `bundle install`
17
+ end
18
+ end
10
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.27.2
4
+ version: 2.27.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-09-20 00:00:00.000000000 Z
13
+ date: 2018-11-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -282,6 +282,20 @@ dependencies:
282
282
  - - "~>"
283
283
  - !ruby/object:Gem::Version
284
284
  version: '1.5'
285
+ - !ruby/object:Gem::Dependency
286
+ name: semantic_logger
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '4.3'
292
+ type: :runtime
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '4.3'
285
299
  - !ruby/object:Gem::Dependency
286
300
  name: pact
287
301
  requirement: !ruby/object:Gem::Requirement
@@ -727,6 +741,7 @@ files:
727
741
  - lib/pact_broker/api/decorators/relationships_csv_decorator.rb
728
742
  - lib/pact_broker/api/decorators/representable_pact.rb
729
743
  - lib/pact_broker/api/decorators/tag_decorator.rb
744
+ - lib/pact_broker/api/decorators/tagged_pact_versions_decorator.rb
730
745
  - lib/pact_broker/api/decorators/timestamps.rb
731
746
  - lib/pact_broker/api/decorators/triggered_webhook_decorator.rb
732
747
  - lib/pact_broker/api/decorators/triggered_webhooks_decorator.rb
@@ -776,6 +791,7 @@ files:
776
791
  - lib/pact_broker/api/resources/provider_pacts.rb
777
792
  - lib/pact_broker/api/resources/relationships.rb
778
793
  - lib/pact_broker/api/resources/tag.rb
794
+ - lib/pact_broker/api/resources/tagged_pact_versions.rb
779
795
  - lib/pact_broker/api/resources/triggered_webhook_logs.rb
780
796
  - lib/pact_broker/api/resources/verification.rb
781
797
  - lib/pact_broker/api/resources/verification_triggered_webhooks.rb
@@ -803,6 +819,7 @@ files:
803
819
  - lib/pact_broker/db/clean.rb
804
820
  - lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
805
821
  - lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
822
+ - lib/pact_broker/db/log_quietener.rb
806
823
  - lib/pact_broker/db/migrate.rb
807
824
  - lib/pact_broker/db/migrate_data.rb
808
825
  - lib/pact_broker/db/validate_encoding.rb
@@ -824,6 +841,7 @@ files:
824
841
  - lib/pact_broker/doc/views/index/provider-pacts.markdown
825
842
  - lib/pact_broker/doc/views/index/publish-pact.markdown
826
843
  - lib/pact_broker/doc/views/index/self.markdown
844
+ - lib/pact_broker/doc/views/index/tagged-pact-versions.markdown
827
845
  - lib/pact_broker/doc/views/integrations.markdown
828
846
  - lib/pact_broker/doc/views/layouts/main.haml
829
847
  - lib/pact_broker/doc/views/not_found.markdown
@@ -862,6 +880,7 @@ files:
862
880
  - lib/pact_broker/labels/service.rb
863
881
  - lib/pact_broker/locale/en.yml
864
882
  - lib/pact_broker/logging.rb
883
+ - lib/pact_broker/logging/default_formatter.rb
865
884
  - lib/pact_broker/matrix/aggregated_row.rb
866
885
  - lib/pact_broker/matrix/deployment_status_summary.rb
867
886
  - lib/pact_broker/matrix/head_row.rb
@@ -1035,6 +1054,7 @@ files:
1035
1054
  - spec/features/create_webhook_spec.rb
1036
1055
  - spec/features/delete_label_spec.rb
1037
1056
  - spec/features/delete_pact_spec.rb
1057
+ - spec/features/delete_tagged_pact_versions_spec.rb
1038
1058
  - spec/features/delete_version_spec.rb
1039
1059
  - spec/features/delete_webhook_spec.rb
1040
1060
  - spec/features/edit_webhook_spec.rb
@@ -1057,6 +1077,7 @@ files:
1057
1077
  - spec/features/get_pacticipants_by_label_spec.rb
1058
1078
  - spec/features/get_previous_distinct_version.rb
1059
1079
  - spec/features/get_provider_pacts_spec.rb
1080
+ - spec/features/get_tagged_pact_versions_spec.rb
1060
1081
  - spec/features/get_triggered_webhooks_for_pact_spec.rb
1061
1082
  - spec/features/get_triggered_webhooks_for_verification_spec.rb
1062
1083
  - spec/features/get_verifications_for_consumer_version_spec.rb
@@ -1120,6 +1141,7 @@ files:
1120
1141
  - spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb
1121
1142
  - spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
1122
1143
  - spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
1144
+ - spec/lib/pact_broker/api/decorators/tagged_pact_versions_decorator_spec.rb
1123
1145
  - spec/lib/pact_broker/api/decorators/triggered_webhook_decorator_spec.rb
1124
1146
  - spec/lib/pact_broker/api/decorators/triggered_webhooks_decorator_spec.rb
1125
1147
  - spec/lib/pact_broker/api/decorators/verification_decorator_spec.rb
@@ -1151,6 +1173,7 @@ files:
1151
1173
  - spec/lib/pact_broker/api/resources/pending_provider_pacts_spec.rb
1152
1174
  - spec/lib/pact_broker/api/resources/provider_pacts_spec.rb
1153
1175
  - spec/lib/pact_broker/api/resources/tag_spec.rb
1176
+ - spec/lib/pact_broker/api/resources/tagged_pact_versions_spec.rb
1154
1177
  - spec/lib/pact_broker/api/resources/triggered_webhook_logs_spec.rb
1155
1178
  - spec/lib/pact_broker/api/resources/verification_triggered_webhooks_spec.rb
1156
1179
  - spec/lib/pact_broker/api/resources/verifications_spec.rb
@@ -1168,6 +1191,7 @@ files:
1168
1191
  - spec/lib/pact_broker/configuration_spec.rb
1169
1192
  - spec/lib/pact_broker/db/clean_spec.rb
1170
1193
  - spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
1194
+ - spec/lib/pact_broker/db/log_quietener_spec.rb
1171
1195
  - spec/lib/pact_broker/db/validate_encoding_spec.rb
1172
1196
  - spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb
1173
1197
  - spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb
@@ -1255,18 +1279,22 @@ files:
1255
1279
  - spec/service_consumers/provider_states_for_pact_broker_client.rb
1256
1280
  - spec/service_consumers/provider_states_for_pact_ruby.rb
1257
1281
  - spec/spec_helper.rb
1282
+ - spec/support/database.rb
1258
1283
  - spec/support/database_cleaner.rb
1259
1284
  - spec/support/fixture_helpers.rb
1285
+ - spec/support/fixture_pact.rb
1260
1286
  - spec/support/foo-bar.json
1261
1287
  - spec/support/generated_index.md
1262
1288
  - spec/support/generated_markdown.md
1263
1289
  - spec/support/interaction_view_model.json
1264
1290
  - spec/support/interaction_view_model_with_terms.json
1291
+ - spec/support/logging.rb
1265
1292
  - spec/support/markdown_pact.json
1266
1293
  - spec/support/markdown_pact_with_markdown_chars_in_names.json
1267
1294
  - spec/support/migration_helpers.rb
1268
1295
  - spec/support/rspec_match_hash.rb
1269
1296
  - spec/support/rspec_matchers.rb
1297
+ - spec/support/shared_context.rb
1270
1298
  - spec/support/shared_examples_for_responses.rb
1271
1299
  - spec/support/ssl_webhook_server.rb
1272
1300
  - spec/support/test_data_builder.rb
@@ -1338,7 +1366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1338
1366
  version: '0'
1339
1367
  requirements: []
1340
1368
  rubyforge_project:
1341
- rubygems_version: 2.7.7
1369
+ rubygems_version: 2.6.11
1342
1370
  signing_key:
1343
1371
  specification_version: 4
1344
1372
  summary: See description
@@ -1348,6 +1376,7 @@ test_files:
1348
1376
  - spec/features/create_webhook_spec.rb
1349
1377
  - spec/features/delete_label_spec.rb
1350
1378
  - spec/features/delete_pact_spec.rb
1379
+ - spec/features/delete_tagged_pact_versions_spec.rb
1351
1380
  - spec/features/delete_version_spec.rb
1352
1381
  - spec/features/delete_webhook_spec.rb
1353
1382
  - spec/features/edit_webhook_spec.rb
@@ -1370,6 +1399,7 @@ test_files:
1370
1399
  - spec/features/get_pacticipants_by_label_spec.rb
1371
1400
  - spec/features/get_previous_distinct_version.rb
1372
1401
  - spec/features/get_provider_pacts_spec.rb
1402
+ - spec/features/get_tagged_pact_versions_spec.rb
1373
1403
  - spec/features/get_triggered_webhooks_for_pact_spec.rb
1374
1404
  - spec/features/get_triggered_webhooks_for_verification_spec.rb
1375
1405
  - spec/features/get_verifications_for_consumer_version_spec.rb
@@ -1433,6 +1463,7 @@ test_files:
1433
1463
  - spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb
1434
1464
  - spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
1435
1465
  - spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
1466
+ - spec/lib/pact_broker/api/decorators/tagged_pact_versions_decorator_spec.rb
1436
1467
  - spec/lib/pact_broker/api/decorators/triggered_webhook_decorator_spec.rb
1437
1468
  - spec/lib/pact_broker/api/decorators/triggered_webhooks_decorator_spec.rb
1438
1469
  - spec/lib/pact_broker/api/decorators/verification_decorator_spec.rb
@@ -1464,6 +1495,7 @@ test_files:
1464
1495
  - spec/lib/pact_broker/api/resources/pending_provider_pacts_spec.rb
1465
1496
  - spec/lib/pact_broker/api/resources/provider_pacts_spec.rb
1466
1497
  - spec/lib/pact_broker/api/resources/tag_spec.rb
1498
+ - spec/lib/pact_broker/api/resources/tagged_pact_versions_spec.rb
1467
1499
  - spec/lib/pact_broker/api/resources/triggered_webhook_logs_spec.rb
1468
1500
  - spec/lib/pact_broker/api/resources/verification_triggered_webhooks_spec.rb
1469
1501
  - spec/lib/pact_broker/api/resources/verifications_spec.rb
@@ -1481,6 +1513,7 @@ test_files:
1481
1513
  - spec/lib/pact_broker/configuration_spec.rb
1482
1514
  - spec/lib/pact_broker/db/clean_spec.rb
1483
1515
  - spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
1516
+ - spec/lib/pact_broker/db/log_quietener_spec.rb
1484
1517
  - spec/lib/pact_broker/db/validate_encoding_spec.rb
1485
1518
  - spec/lib/pact_broker/diagnostic/resources/dependencies_spec.rb
1486
1519
  - spec/lib/pact_broker/diagnostic/resources/heartbeat_spec.rb
@@ -1568,18 +1601,22 @@ test_files:
1568
1601
  - spec/service_consumers/provider_states_for_pact_broker_client.rb
1569
1602
  - spec/service_consumers/provider_states_for_pact_ruby.rb
1570
1603
  - spec/spec_helper.rb
1604
+ - spec/support/database.rb
1571
1605
  - spec/support/database_cleaner.rb
1572
1606
  - spec/support/fixture_helpers.rb
1607
+ - spec/support/fixture_pact.rb
1573
1608
  - spec/support/foo-bar.json
1574
1609
  - spec/support/generated_index.md
1575
1610
  - spec/support/generated_markdown.md
1576
1611
  - spec/support/interaction_view_model.json
1577
1612
  - spec/support/interaction_view_model_with_terms.json
1613
+ - spec/support/logging.rb
1578
1614
  - spec/support/markdown_pact.json
1579
1615
  - spec/support/markdown_pact_with_markdown_chars_in_names.json
1580
1616
  - spec/support/migration_helpers.rb
1581
1617
  - spec/support/rspec_match_hash.rb
1582
1618
  - spec/support/rspec_matchers.rb
1619
+ - spec/support/shared_context.rb
1583
1620
  - spec/support/shared_examples_for_responses.rb
1584
1621
  - spec/support/ssl_webhook_server.rb
1585
1622
  - spec/support/test_data_builder.rb