pact_broker 2.27.6 → 2.29.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 +4 -4
- data/.gitignore +4 -1
- data/.travis.yml +1 -2
- data/CHANGELOG.md +38 -0
- data/MATRIX.md +4 -0
- data/README.md +3 -2
- data/Rakefile +1 -2
- data/config/database.yml +5 -0
- data/lib/pact_broker/api/decorators/matrix_decorator.rb +7 -1
- data/lib/pact_broker/api/decorators/reason_decorator.rb +50 -0
- data/lib/pact_broker/api/resources/base_resource.rb +1 -1
- data/lib/pact_broker/api/resources/error_handler.rb +32 -9
- data/lib/pact_broker/app.rb +16 -1
- data/lib/pact_broker/domain/webhook_request.rb +1 -1
- data/lib/pact_broker/matrix/deployment_status_summary.rb +123 -44
- data/lib/pact_broker/matrix/head_row.rb +20 -0
- data/lib/pact_broker/matrix/integration.rb +49 -7
- data/lib/pact_broker/matrix/query_results.rb +3 -2
- data/lib/pact_broker/matrix/query_results_with_deployment_status_summary.rb +2 -2
- data/lib/pact_broker/matrix/reason.rb +74 -0
- data/lib/pact_broker/matrix/repository.rb +97 -61
- data/lib/pact_broker/matrix/resolved_selector.rb +126 -0
- data/lib/pact_broker/matrix/row.rb +8 -1
- data/lib/pact_broker/matrix/service.rb +2 -16
- data/lib/pact_broker/pacts/repository.rb +15 -5
- data/lib/pact_broker/repositories/helpers.rb +3 -2
- data/lib/pact_broker/ui/views/index/_navbar.haml +14 -0
- data/lib/pact_broker/ui/views/index/show-with-tags.haml +1 -12
- data/lib/pact_broker/ui/views/index/show.haml +1 -12
- data/lib/pact_broker/ui/views/layouts/main.haml +3 -0
- data/lib/pact_broker/version.rb +1 -1
- data/lib/pact_broker/webhooks/job.rb +11 -5
- data/lib/pact_broker/webhooks/service.rb +10 -2
- data/lib/pact_broker/webhooks/webhook.rb +4 -0
- data/lib/rack/pact_broker/database_transaction.rb +22 -0
- data/pact_broker.gemspec +25 -1
- data/script/restart.sh +18 -0
- data/script/watch.sh +7 -0
- data/spec/features/publish_verification_spec.rb +1 -1
- data/spec/integration/app_spec.rb +1 -1
- data/spec/integration/webhooks/certificate_spec.rb +10 -2
- data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +2 -1
- data/spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb +59 -0
- data/spec/lib/pact_broker/api/resources/error_handler_spec.rb +84 -21
- data/spec/lib/pact_broker/app_spec.rb +22 -0
- data/spec/lib/pact_broker/domain/webhook_request_spec.rb +1 -1
- data/spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb +116 -28
- data/spec/lib/pact_broker/matrix/head_row_spec.rb +23 -0
- data/spec/lib/pact_broker/matrix/integration_spec.rb +242 -0
- data/spec/lib/pact_broker/matrix/repository_dependency_spec.rb +58 -0
- data/spec/lib/pact_broker/matrix/repository_spec.rb +40 -7
- data/spec/lib/pact_broker/matrix/service_spec.rb +0 -50
- data/spec/lib/pact_broker/pacts/repository_spec.rb +20 -4
- data/spec/lib/pact_broker/webhooks/job_spec.rb +9 -9
- data/spec/lib/pact_broker/webhooks/service_spec.rb +3 -3
- data/spec/lib/pact_broker/webhooks/webhook_spec.rb +39 -0
- data/spec/lib/rack/pact_broker/database_transaction_spec.rb +40 -0
- data/spec/service_consumers/pact_helper.rb +2 -0
- data/spec/spec_helper.rb +2 -3
- data/spec/support/jobs.rb +12 -0
- data/spec/support/migration_helpers.rb +1 -1
- data/spec/support/simplecov.rb +10 -0
- data/tasks/audit.rake +2 -0
- data/tasks/pact.rake +5 -1
- data/tasks/rspec.rake +14 -0
- metadata +50 -5
- data/db/pact_broker_database.sqlite3 +0 -0
- data/spec/lib/pact_broker/matrix/repository_find_integrations_spec.rb +0 -51
@@ -139,6 +139,7 @@ module PactBroker
|
|
139
139
|
let(:existing_pact) do
|
140
140
|
TestDataBuilder.new.create_pact_with_hierarchy("A Consumer", "1.2.3", "A Provider", original_json_content).and_return(:pact)
|
141
141
|
end
|
142
|
+
let(:repository) { Repository.new }
|
142
143
|
|
143
144
|
before do
|
144
145
|
::DB::PACT_BROKER_DB[:pact_publications]
|
@@ -155,10 +156,8 @@ module PactBroker
|
|
155
156
|
let(:original_json_content) { {some: 'json'}.to_json }
|
156
157
|
let(:json_content) { {some_other: 'json'}.to_json }
|
157
158
|
|
158
|
-
|
159
159
|
context "when the attributes have changed" do
|
160
|
-
|
161
|
-
subject { Repository.new.update existing_pact.id, json_content: json_content }
|
160
|
+
subject { repository.update existing_pact.id, json_content: json_content }
|
162
161
|
|
163
162
|
it "creates a new PactVersion" do
|
164
163
|
expect { subject }.to change{ PactBroker::Pacts::PactPublication.count }.by(1)
|
@@ -186,11 +185,27 @@ module PactBroker
|
|
186
185
|
it "increments the revision_number by 1" do
|
187
186
|
expect(subject.revision_number).to eq 2
|
188
187
|
end
|
188
|
+
|
189
|
+
context "when there is a race condition" do
|
190
|
+
before do
|
191
|
+
allow(repository).to receive(:next_revision_number) { | existing_pact | existing_pact.revision_number }
|
192
|
+
end
|
193
|
+
|
194
|
+
it "updates the existing row - yes this is destructive, by MySQL not supporting inner queries stops us doing a SELECT revision_number + 1" do
|
195
|
+
# And if we're conflicting the time between the two publications is so small that nobody
|
196
|
+
# can have depended on the content of the first pact
|
197
|
+
expect { subject }.to_not change{ PactBroker::Pacts::PactPublication.count }
|
198
|
+
end
|
199
|
+
|
200
|
+
it "sets the content to the new content" do
|
201
|
+
expect(subject.json_content).to eq json_content
|
202
|
+
end
|
203
|
+
end
|
189
204
|
end
|
190
205
|
|
191
206
|
context "when the content has not changed" do
|
192
207
|
|
193
|
-
subject {
|
208
|
+
subject { repository.update existing_pact.id, json_content: original_json_content }
|
194
209
|
|
195
210
|
it "does not create a new PactVersion" do
|
196
211
|
expect { subject }.to_not change{ PactBroker::Pacts::PactPublication.count }
|
@@ -217,6 +232,7 @@ module PactBroker
|
|
217
232
|
.create_consumer_version("1.2.3")
|
218
233
|
.create_provider(provider_name)
|
219
234
|
.create_pact
|
235
|
+
.create_webhook
|
220
236
|
.revise_pact
|
221
237
|
.create_consumer_version("2.3.4")
|
222
238
|
.create_pact
|
@@ -3,7 +3,6 @@ require 'pact_broker/webhooks/job'
|
|
3
3
|
module PactBroker
|
4
4
|
module Webhooks
|
5
5
|
describe Job do
|
6
|
-
|
7
6
|
before do
|
8
7
|
PactBroker.configuration.webhook_retry_schedule = [10, 60, 120, 300, 600, 1200]
|
9
8
|
allow(PactBroker::Webhooks::Service).to receive(:execute_triggered_webhook_now).and_return(result)
|
@@ -16,8 +15,9 @@ module PactBroker
|
|
16
15
|
let(:result) { instance_double("PactBroker::Domain::WebhookExecutionResult", success?: success)}
|
17
16
|
let(:success) { true }
|
18
17
|
let(:logger) { double('logger').as_null_object }
|
18
|
+
let(:database_connector) { ->(&block) { block.call } }
|
19
19
|
|
20
|
-
subject { Job.new.perform(triggered_webhook: triggered_webhook) }
|
20
|
+
subject { Job.new.perform(triggered_webhook: triggered_webhook, database_connector: database_connector) }
|
21
21
|
|
22
22
|
it "reloads the TriggeredWebhook object to make sure it has a fresh copy" do
|
23
23
|
expect(PactBroker::Webhooks::TriggeredWebhook).to receive(:find).with(id: 1)
|
@@ -44,7 +44,7 @@ module PactBroker
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "reschedules the job in 10 seconds" do
|
47
|
-
expect(Job).to receive(:perform_in).with(10, {triggered_webhook: triggered_webhook, error_count: 1})
|
47
|
+
expect(Job).to receive(:perform_in).with(10, {triggered_webhook: triggered_webhook, error_count: 1, database_connector: database_connector})
|
48
48
|
subject
|
49
49
|
end
|
50
50
|
|
@@ -59,7 +59,7 @@ module PactBroker
|
|
59
59
|
let(:success) { false }
|
60
60
|
|
61
61
|
it "reschedules the job in 10 seconds" do
|
62
|
-
expect(Job).to receive(:perform_in).with(10, {triggered_webhook: triggered_webhook, error_count: 1})
|
62
|
+
expect(Job).to receive(:perform_in).with(10, {triggered_webhook: triggered_webhook, error_count: 1, database_connector: database_connector})
|
63
63
|
subject
|
64
64
|
end
|
65
65
|
|
@@ -84,10 +84,10 @@ module PactBroker
|
|
84
84
|
allow(PactBroker::Webhooks::Service).to receive(:execute_triggered_webhook_now).and_raise("an error")
|
85
85
|
end
|
86
86
|
|
87
|
-
subject { Job.new.perform(triggered_webhook: triggered_webhook, error_count: 1) }
|
87
|
+
subject { Job.new.perform(triggered_webhook: triggered_webhook, error_count: 1, database_connector: database_connector) }
|
88
88
|
|
89
89
|
it "reschedules the job in 60 seconds" do
|
90
|
-
expect(Job).to receive(:perform_in).with(60, {triggered_webhook: triggered_webhook, error_count: 2})
|
90
|
+
expect(Job).to receive(:perform_in).with(60, {triggered_webhook: triggered_webhook, error_count: 2, database_connector: database_connector})
|
91
91
|
subject
|
92
92
|
end
|
93
93
|
|
@@ -101,7 +101,7 @@ module PactBroker
|
|
101
101
|
context "when the job is not successful for the last time" do
|
102
102
|
let(:success) { false }
|
103
103
|
|
104
|
-
subject { Job.new.perform(triggered_webhook: triggered_webhook, error_count: 6) }
|
104
|
+
subject { Job.new.perform(triggered_webhook: triggered_webhook, error_count: 6, database_connector: database_connector) }
|
105
105
|
|
106
106
|
it "executes the job with an log message indicating that the webhook has failed" do
|
107
107
|
expect(PactBroker::Webhooks::Service).to receive(:execute_triggered_webhook_now)
|
@@ -118,8 +118,8 @@ module PactBroker
|
|
118
118
|
end
|
119
119
|
|
120
120
|
it "logs that it has failed" do
|
121
|
-
allow(Job.logger).to receive(:
|
122
|
-
expect(Job.logger).to receive(:
|
121
|
+
allow(Job.logger).to receive(:info)
|
122
|
+
expect(Job.logger).to receive(:info).with(/Failed to execute/)
|
123
123
|
subject
|
124
124
|
end
|
125
125
|
|
@@ -76,7 +76,7 @@ module PactBroker
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
context "when there is a scheduling error" do
|
79
|
+
context "when there is a scheduling error", job: true do
|
80
80
|
before do
|
81
81
|
allow(Job).to receive(:perform_in).and_raise("an error")
|
82
82
|
end
|
@@ -166,7 +166,7 @@ module PactBroker
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
|
-
describe ".execute_webhook_now integration test" do
|
169
|
+
describe ".execute_webhook_now integration test", job: true do
|
170
170
|
let(:td) { TestDataBuilder.new }
|
171
171
|
|
172
172
|
let!(:http_request) do
|
@@ -215,7 +215,7 @@ module PactBroker
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
-
describe ".trigger_webhooks integration test" do
|
218
|
+
describe ".trigger_webhooks integration test", job: true do
|
219
219
|
let!(:http_request) do
|
220
220
|
stub_request(:get, "http://example.org").
|
221
221
|
to_return(:status => 200)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'pact_broker/webhooks/webhook'
|
2
|
+
|
3
|
+
module PactBroker
|
4
|
+
module Webhooks
|
5
|
+
describe Webhook do
|
6
|
+
|
7
|
+
let(:td) { TestDataBuilder.new }
|
8
|
+
|
9
|
+
before do
|
10
|
+
td.create_consumer("Foo")
|
11
|
+
.create_provider("Bar")
|
12
|
+
.create_consumer_version
|
13
|
+
.create_pact
|
14
|
+
.create_global_webhook
|
15
|
+
.create_consumer_webhook
|
16
|
+
.create_provider_webhook
|
17
|
+
.create_provider("Wiffle")
|
18
|
+
.create_provider_webhook
|
19
|
+
end
|
20
|
+
|
21
|
+
let(:consumer) { PactBroker::Domain::Pacticipant.find(name: "Foo") }
|
22
|
+
let(:provider) { PactBroker::Domain::Pacticipant.find(name: "Bar") }
|
23
|
+
let(:pact) { double(consumer_id: consumer.id, provider_id: provider.id).as_null_object }
|
24
|
+
|
25
|
+
describe "#is_for?" do
|
26
|
+
let(:matching_webhook_uuids) { Webhooks::Repository.new.find_by_consumer_and_or_provider(consumer, provider).collect(&:uuid) }
|
27
|
+
let(:matching_webhooks) { Webhooks::Webhook.where(uuid: matching_webhook_uuids) }
|
28
|
+
let(:non_matching_webhooks) { Webhooks::Webhook.exclude(uuid: matching_webhook_uuids) }
|
29
|
+
|
30
|
+
it "matches the implementation of Webhook::Repository#find_by_consumer_and_or_provider" do
|
31
|
+
expect(matching_webhooks.count).to be > 0
|
32
|
+
expect(non_matching_webhooks.count).to be > 0
|
33
|
+
expect(matching_webhooks.all?{|w| w.is_for?(pact)}).to be true
|
34
|
+
expect(non_matching_webhooks.all?{|w| !w.is_for?(pact)}).to be true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -50,6 +50,46 @@ module Rack
|
|
50
50
|
expect { subject }.to change { ::PactBroker::Domain::Pacticipant.count }.by(1)
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
describe "setting the database connector" do
|
55
|
+
let(:api) { double('api', call: [200, {}, []]) }
|
56
|
+
|
57
|
+
it "sets a database connector for use in jobs scheduled by this request" do
|
58
|
+
expect(api).to receive(:call) do | env |
|
59
|
+
expect(Thread.current[:pact_broker_thread_data].database_connector).to_not be nil
|
60
|
+
[200, {}, []]
|
61
|
+
end
|
62
|
+
|
63
|
+
subject
|
64
|
+
end
|
65
|
+
|
66
|
+
it "clears it after the request" do
|
67
|
+
subject
|
68
|
+
expect(Thread.current[:pact_broker_thread_data].database_connector).to be nil
|
69
|
+
end
|
70
|
+
|
71
|
+
context "when other middleware sets the database connector" do
|
72
|
+
before do
|
73
|
+
Thread.current[:pact_broker_thread_data] = OpenStruct.new(database_connector: other_database_connector)
|
74
|
+
end
|
75
|
+
|
76
|
+
let(:other_database_connector) { ->(&block) { block.call } }
|
77
|
+
|
78
|
+
it "does not override it" do
|
79
|
+
expect(api).to receive(:call) do | env |
|
80
|
+
expect(Thread.current[:pact_broker_thread_data].database_connector).to eq other_database_connector
|
81
|
+
[200, {}, []]
|
82
|
+
end
|
83
|
+
|
84
|
+
subject
|
85
|
+
end
|
86
|
+
|
87
|
+
it "does not clear it after the request" do
|
88
|
+
subject
|
89
|
+
expect(Thread.current[:pact_broker_thread_data].database_connector).to_not be nil
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
53
93
|
end
|
54
94
|
end
|
55
95
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
$: << File.expand_path("../../", __FILE__)
|
2
2
|
|
3
3
|
RACK_ENV = ENV['RACK_ENV'] = 'test'
|
4
|
-
|
5
|
-
require 'simplecov'
|
6
|
-
SimpleCov.start
|
4
|
+
require 'spec/support/simplecov'
|
7
5
|
|
8
6
|
require 'support/logging'
|
9
7
|
require 'support/database'
|
@@ -45,6 +43,7 @@ RSpec.configure do | config |
|
|
45
43
|
|
46
44
|
config.include FixtureHelpers
|
47
45
|
config.example_status_persistence_file_path = "./spec/examples.txt"
|
46
|
+
config.filter_run_excluding skip: true
|
48
47
|
|
49
48
|
def app
|
50
49
|
PactBroker::API
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
RSpec.configure do | config |
|
4
|
+
config.before(:each, job: true) do
|
5
|
+
Thread.current[:pact_broker_thread_data] = OpenStruct.new
|
6
|
+
Thread.current[:pact_broker_thread_data].database_connector = -> (&block) { block.call }
|
7
|
+
end
|
8
|
+
|
9
|
+
config.after(:each, job: true) do
|
10
|
+
Thread.current[:pact_broker_thread_data] = nil
|
11
|
+
end
|
12
|
+
end
|
data/tasks/audit.rake
ADDED
data/tasks/pact.rake
CHANGED
@@ -4,8 +4,12 @@ Pact::VerificationTask.new(:dev) do | pact |
|
|
4
4
|
pact.uri "../pact_broker-client/spec/pacts/pact_broker_client-pact_broker.json"
|
5
5
|
end
|
6
6
|
|
7
|
+
task :set_simplecov_command_to_pact_verify do
|
8
|
+
ENV['SIMPLECOV_COMMAND_NAME'] = 'pact:verify'
|
9
|
+
end
|
10
|
+
|
7
11
|
namespace :pact do
|
8
|
-
task :prepare => ['db:set_test_env', 'db:prepare:test']
|
12
|
+
task :prepare => ['db:set_test_env', 'db:prepare:test', 'set_simplecov_command_to_pact_verify',]
|
9
13
|
task :verify => :prepare
|
10
14
|
task 'verify:at' => :prepare
|
11
15
|
task 'verify:dev' => :prepare
|
data/tasks/rspec.rake
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'rspec/core'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
+
RSpec::Core::RakeTask.new('spec:focus') do |task|
|
5
|
+
task.rspec_opts = '--tag @focus'
|
6
|
+
end
|
7
|
+
|
4
8
|
RSpec::Core::RakeTask.new('spec:quick') do |task|
|
5
9
|
task.rspec_opts = '--tag ~@no_db_clean --tag ~@migration'
|
6
10
|
end
|
@@ -9,4 +13,14 @@ RSpec::Core::RakeTask.new('spec:slow') do |task|
|
|
9
13
|
task.rspec_opts = '--tag @no_db_clean --tag @migration'
|
10
14
|
end
|
11
15
|
|
16
|
+
task :set_simplecov_command_to_spec_quick do
|
17
|
+
ENV['SIMPLECOV_COMMAND_NAME'] = 'spec:quick'
|
18
|
+
end
|
19
|
+
|
20
|
+
task :set_simplecov_command_to_spec_slow do
|
21
|
+
ENV['SIMPLECOV_COMMAND_NAME'] = 'spec:slow'
|
22
|
+
end
|
23
|
+
|
24
|
+
task 'spec:quick' => ['set_simplecov_command_to_spec_quick']
|
25
|
+
task 'spec:slow' => ['set_simplecov_command_to_spec_slow']
|
12
26
|
task :spec => ['spec:quick', 'spec:slow']
|
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.
|
4
|
+
version: 2.29.0
|
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:
|
13
|
+
date: 2019-03-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: httparty
|
@@ -274,6 +274,20 @@ dependencies:
|
|
274
274
|
- - "~>"
|
275
275
|
- !ruby/object:Gem::Version
|
276
276
|
version: 0.10.3
|
277
|
+
- !ruby/object:Gem::Dependency
|
278
|
+
name: dry-logic
|
279
|
+
requirement: !ruby/object:Gem::Requirement
|
280
|
+
requirements:
|
281
|
+
- - '='
|
282
|
+
- !ruby/object:Gem::Version
|
283
|
+
version: 0.4.2
|
284
|
+
type: :runtime
|
285
|
+
prerelease: false
|
286
|
+
version_requirements: !ruby/object:Gem::Requirement
|
287
|
+
requirements:
|
288
|
+
- - '='
|
289
|
+
- !ruby/object:Gem::Version
|
290
|
+
version: 0.4.2
|
277
291
|
- !ruby/object:Gem::Dependency
|
278
292
|
name: table_print
|
279
293
|
requirement: !ruby/object:Gem::Requirement
|
@@ -526,6 +540,20 @@ dependencies:
|
|
526
540
|
- - "~>"
|
527
541
|
- !ruby/object:Gem::Version
|
528
542
|
version: '1.3'
|
543
|
+
- !ruby/object:Gem::Dependency
|
544
|
+
name: faraday
|
545
|
+
requirement: !ruby/object:Gem::Requirement
|
546
|
+
requirements:
|
547
|
+
- - "~>"
|
548
|
+
- !ruby/object:Gem::Version
|
549
|
+
version: '0.15'
|
550
|
+
type: :development
|
551
|
+
prerelease: false
|
552
|
+
version_requirements: !ruby/object:Gem::Requirement
|
553
|
+
requirements:
|
554
|
+
- - "~>"
|
555
|
+
- !ruby/object:Gem::Version
|
556
|
+
version: '0.15'
|
529
557
|
description: A server that stores and returns pact files generated by the pact gem.
|
530
558
|
It enables head/prod cross testing of the consumer and provider projects.
|
531
559
|
email:
|
@@ -553,6 +581,7 @@ files:
|
|
553
581
|
- DEVELOPER_SETUP.md
|
554
582
|
- Gemfile
|
555
583
|
- LICENSE.txt
|
584
|
+
- MATRIX.md
|
556
585
|
- README.md
|
557
586
|
- RELEASING.md
|
558
587
|
- Rakefile
|
@@ -661,7 +690,6 @@ files:
|
|
661
690
|
- db/migrations/20180731_update_head_matrix.rb
|
662
691
|
- db/migrations/20180828_create_latest_versions.rb
|
663
692
|
- db/migrations/migration_helper.rb
|
664
|
-
- db/pact_broker_database.sqlite3
|
665
693
|
- db/test/backwards_compatibility/.rspec
|
666
694
|
- db/test/backwards_compatibility/Appraisals
|
667
695
|
- db/test/backwards_compatibility/Gemfile
|
@@ -744,6 +772,7 @@ files:
|
|
744
772
|
- lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb
|
745
773
|
- lib/pact_broker/api/decorators/pacticipant_decorator.rb
|
746
774
|
- lib/pact_broker/api/decorators/provider_pacts_decorator.rb
|
775
|
+
- lib/pact_broker/api/decorators/reason_decorator.rb
|
747
776
|
- lib/pact_broker/api/decorators/relationships_csv_decorator.rb
|
748
777
|
- lib/pact_broker/api/decorators/representable_pact.rb
|
749
778
|
- lib/pact_broker/api/decorators/tag_decorator.rb
|
@@ -894,7 +923,9 @@ files:
|
|
894
923
|
- lib/pact_broker/matrix/parse_query.rb
|
895
924
|
- lib/pact_broker/matrix/query_results.rb
|
896
925
|
- lib/pact_broker/matrix/query_results_with_deployment_status_summary.rb
|
926
|
+
- lib/pact_broker/matrix/reason.rb
|
897
927
|
- lib/pact_broker/matrix/repository.rb
|
928
|
+
- lib/pact_broker/matrix/resolved_selector.rb
|
898
929
|
- lib/pact_broker/matrix/row.rb
|
899
930
|
- lib/pact_broker/matrix/service.rb
|
900
931
|
- lib/pact_broker/messages.rb
|
@@ -948,6 +979,7 @@ files:
|
|
948
979
|
- lib/pact_broker/ui/view_models/matrix_tag.rb
|
949
980
|
- lib/pact_broker/ui/views/clusters/show.haml
|
950
981
|
- lib/pact_broker/ui/views/groups/show.html.erb
|
982
|
+
- lib/pact_broker/ui/views/index/_navbar.haml
|
951
983
|
- lib/pact_broker/ui/views/index/show-with-tags.haml
|
952
984
|
- lib/pact_broker/ui/views/index/show.haml
|
953
985
|
- lib/pact_broker/ui/views/layouts/main.haml
|
@@ -1049,11 +1081,13 @@ files:
|
|
1049
1081
|
- script/recreate-pg-db.sh
|
1050
1082
|
- script/recreate-test-database.sh
|
1051
1083
|
- script/release.sh
|
1084
|
+
- script/restart.sh
|
1052
1085
|
- script/run-with-ssl.rb
|
1053
1086
|
- script/seed-example-matrix.rb
|
1054
1087
|
- script/seed-matrix.rb
|
1055
1088
|
- script/seed.rb
|
1056
1089
|
- script/update-hal-browser
|
1090
|
+
- script/watch.sh
|
1057
1091
|
- script/webhook-server.ru
|
1058
1092
|
- spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb
|
1059
1093
|
- spec/features/create_pacticipant_spec.rb
|
@@ -1144,6 +1178,7 @@ files:
|
|
1144
1178
|
- spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb
|
1145
1179
|
- spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb
|
1146
1180
|
- spec/lib/pact_broker/api/decorators/provider_pacts_decorator_spec.rb
|
1181
|
+
- spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb
|
1147
1182
|
- spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb
|
1148
1183
|
- spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
|
1149
1184
|
- spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
|
@@ -1219,8 +1254,9 @@ files:
|
|
1219
1254
|
- spec/lib/pact_broker/matrix/aggregated_row_spec.rb
|
1220
1255
|
- spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb
|
1221
1256
|
- spec/lib/pact_broker/matrix/head_row_spec.rb
|
1257
|
+
- spec/lib/pact_broker/matrix/integration_spec.rb
|
1222
1258
|
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|
1223
|
-
- spec/lib/pact_broker/matrix/
|
1259
|
+
- spec/lib/pact_broker/matrix/repository_dependency_spec.rb
|
1224
1260
|
- spec/lib/pact_broker/matrix/repository_spec.rb
|
1225
1261
|
- spec/lib/pact_broker/matrix/row_spec.rb
|
1226
1262
|
- spec/lib/pact_broker/matrix/service_spec.rb
|
@@ -1265,6 +1301,7 @@ files:
|
|
1265
1301
|
- spec/lib/pact_broker/webhooks/status_spec.rb
|
1266
1302
|
- spec/lib/pact_broker/webhooks/triggered_webhook_spec.rb
|
1267
1303
|
- spec/lib/pact_broker/webhooks/webhook_request_template_spec.rb
|
1304
|
+
- spec/lib/pact_broker/webhooks/webhook_spec.rb
|
1268
1305
|
- spec/lib/rack/hal_browser/redirect_spec.rb
|
1269
1306
|
- spec/lib/rack/pact_broker/add_pact_broker_version_header_spec.rb
|
1270
1307
|
- spec/lib/rack/pact_broker/database_transaction_spec.rb
|
@@ -1294,6 +1331,7 @@ files:
|
|
1294
1331
|
- spec/support/generated_markdown.md
|
1295
1332
|
- spec/support/interaction_view_model.json
|
1296
1333
|
- spec/support/interaction_view_model_with_terms.json
|
1334
|
+
- spec/support/jobs.rb
|
1297
1335
|
- spec/support/logging.rb
|
1298
1336
|
- spec/support/markdown_pact.json
|
1299
1337
|
- spec/support/markdown_pact_with_markdown_chars_in_names.json
|
@@ -1302,9 +1340,11 @@ files:
|
|
1302
1340
|
- spec/support/rspec_matchers.rb
|
1303
1341
|
- spec/support/shared_context.rb
|
1304
1342
|
- spec/support/shared_examples_for_responses.rb
|
1343
|
+
- spec/support/simplecov.rb
|
1305
1344
|
- spec/support/ssl_webhook_server.rb
|
1306
1345
|
- spec/support/test_data_builder.rb
|
1307
1346
|
- spec/support/warning_silencer.rb
|
1347
|
+
- tasks/audit.rake
|
1308
1348
|
- tasks/database.rb
|
1309
1349
|
- tasks/database/annotate.rb
|
1310
1350
|
- tasks/database/table_dependency_calculator.rb
|
@@ -1466,6 +1506,7 @@ test_files:
|
|
1466
1506
|
- spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb
|
1467
1507
|
- spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb
|
1468
1508
|
- spec/lib/pact_broker/api/decorators/provider_pacts_decorator_spec.rb
|
1509
|
+
- spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb
|
1469
1510
|
- spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb
|
1470
1511
|
- spec/lib/pact_broker/api/decorators/representable_pact_spec.rb
|
1471
1512
|
- spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb
|
@@ -1541,8 +1582,9 @@ test_files:
|
|
1541
1582
|
- spec/lib/pact_broker/matrix/aggregated_row_spec.rb
|
1542
1583
|
- spec/lib/pact_broker/matrix/deployment_status_summary_spec.rb
|
1543
1584
|
- spec/lib/pact_broker/matrix/head_row_spec.rb
|
1585
|
+
- spec/lib/pact_broker/matrix/integration_spec.rb
|
1544
1586
|
- spec/lib/pact_broker/matrix/parse_query_spec.rb
|
1545
|
-
- spec/lib/pact_broker/matrix/
|
1587
|
+
- spec/lib/pact_broker/matrix/repository_dependency_spec.rb
|
1546
1588
|
- spec/lib/pact_broker/matrix/repository_spec.rb
|
1547
1589
|
- spec/lib/pact_broker/matrix/row_spec.rb
|
1548
1590
|
- spec/lib/pact_broker/matrix/service_spec.rb
|
@@ -1587,6 +1629,7 @@ test_files:
|
|
1587
1629
|
- spec/lib/pact_broker/webhooks/status_spec.rb
|
1588
1630
|
- spec/lib/pact_broker/webhooks/triggered_webhook_spec.rb
|
1589
1631
|
- spec/lib/pact_broker/webhooks/webhook_request_template_spec.rb
|
1632
|
+
- spec/lib/pact_broker/webhooks/webhook_spec.rb
|
1590
1633
|
- spec/lib/rack/hal_browser/redirect_spec.rb
|
1591
1634
|
- spec/lib/rack/pact_broker/add_pact_broker_version_header_spec.rb
|
1592
1635
|
- spec/lib/rack/pact_broker/database_transaction_spec.rb
|
@@ -1616,6 +1659,7 @@ test_files:
|
|
1616
1659
|
- spec/support/generated_markdown.md
|
1617
1660
|
- spec/support/interaction_view_model.json
|
1618
1661
|
- spec/support/interaction_view_model_with_terms.json
|
1662
|
+
- spec/support/jobs.rb
|
1619
1663
|
- spec/support/logging.rb
|
1620
1664
|
- spec/support/markdown_pact.json
|
1621
1665
|
- spec/support/markdown_pact_with_markdown_chars_in_names.json
|
@@ -1624,6 +1668,7 @@ test_files:
|
|
1624
1668
|
- spec/support/rspec_matchers.rb
|
1625
1669
|
- spec/support/shared_context.rb
|
1626
1670
|
- spec/support/shared_examples_for_responses.rb
|
1671
|
+
- spec/support/simplecov.rb
|
1627
1672
|
- spec/support/ssl_webhook_server.rb
|
1628
1673
|
- spec/support/test_data_builder.rb
|
1629
1674
|
- spec/support/warning_silencer.rb
|