pact_broker 2.76.2 → 2.77.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +12 -0
  3. data/.github/workflows/test-ruby-3.yml +19 -0
  4. data/.github/workflows/test.yml +16 -7
  5. data/.gitignore +3 -1
  6. data/CHANGELOG.md +15 -0
  7. data/DEVELOPER_SETUP.md +62 -3
  8. data/Dockerfile +1 -0
  9. data/ISSUES.md +7 -7
  10. data/config.ru +1 -0
  11. data/db/ddl_statements/head_pact_tags.rb +24 -1
  12. data/db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb +11 -0
  13. data/db/ddl_statements/latest_tagged_pact_publications.rb +6 -0
  14. data/db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb +13 -0
  15. data/db/migrations/20210117_add_branch_to_version.rb +9 -0
  16. data/db/migrations/20210202_add_created_at_to_head_pact_tags.rb +14 -0
  17. data/db/migrations/20210205_add_pacticipant_id_to_tag.rb +17 -0
  18. data/db/migrations/20210206_add_index_to_tags_and_versions.rb +27 -0
  19. data/db/migrations/20210207_optimise_latest_verification_ids_for_consumer_version_tags.rb +13 -0
  20. data/db/migrations/20210208_optimise_latest_tagged_pact_cv_orders.rb +13 -0
  21. data/lib/pact_broker/api.rb +2 -2
  22. data/lib/pact_broker/api/decorators/dashboard_decorator.rb +5 -1
  23. data/lib/pact_broker/api/decorators/matrix_decorator.rb +3 -1
  24. data/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator.rb +2 -0
  25. data/lib/pact_broker/api/decorators/version_decorator.rb +4 -2
  26. data/lib/pact_broker/api/resources/default_base_resource.rb +4 -0
  27. data/lib/pact_broker/api/resources/index.rb +6 -0
  28. data/lib/pact_broker/api/resources/latest_version.rb +27 -0
  29. data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +1 -0
  30. data/lib/pact_broker/api/resources/version.rb +15 -9
  31. data/lib/pact_broker/certificates/certificate.rb +1 -1
  32. data/lib/pact_broker/config/setting.rb +1 -1
  33. data/lib/pact_broker/config/space_delimited_integer_list.rb +25 -0
  34. data/lib/pact_broker/configuration.rb +17 -1
  35. data/lib/pact_broker/db/data_migrations/helpers.rb +4 -0
  36. data/lib/pact_broker/db/data_migrations/set_extra_columns_for_tags.rb +29 -0
  37. data/lib/pact_broker/db/migrate_data.rb +1 -0
  38. data/lib/pact_broker/db/seed_example_data.rb +13 -13
  39. data/lib/pact_broker/doc/views/index/pacticipant-version.markdown +13 -0
  40. data/lib/pact_broker/domain/index_item.rb +18 -4
  41. data/lib/pact_broker/domain/pacticipant.rb +9 -5
  42. data/lib/pact_broker/domain/tag.rb +131 -71
  43. data/lib/pact_broker/domain/verification.rb +3 -2
  44. data/lib/pact_broker/domain/version.rb +58 -23
  45. data/lib/pact_broker/domain/webhook.rb +6 -3
  46. data/lib/pact_broker/index/service.rb +55 -49
  47. data/lib/pact_broker/matrix/quick_row.rb +8 -0
  48. data/lib/pact_broker/metrics/service.rb +1 -1
  49. data/lib/pact_broker/pacts/eager_loaders.rb +52 -0
  50. data/lib/pact_broker/pacts/latest_pact_publication_id_for_consumer_version.rb +18 -13
  51. data/lib/pact_broker/pacts/lazy_loaders.rb +14 -0
  52. data/lib/pact_broker/pacts/pact_publication.rb +38 -84
  53. data/lib/pact_broker/pacts/pact_publication_dataset_module.rb +297 -0
  54. data/lib/pact_broker/pacts/pact_version.rb +1 -2
  55. data/lib/pact_broker/pacts/pacts_for_verification_repository.rb +286 -0
  56. data/lib/pact_broker/pacts/repository.rb +5 -240
  57. data/lib/pact_broker/pacts/selected_pact.rb +4 -0
  58. data/lib/pact_broker/pacts/selector.rb +56 -1
  59. data/lib/pact_broker/pacts/selectors.rb +16 -0
  60. data/lib/pact_broker/pacts/service.rb +2 -6
  61. data/lib/pact_broker/pacts/squash_pacts_for_verification.rb +1 -4
  62. data/lib/pact_broker/pacts/verifiable_pact.rb +23 -2
  63. data/lib/pact_broker/pacts/verifiable_pact_messages.rb +56 -16
  64. data/lib/pact_broker/repositories/helpers.rb +4 -0
  65. data/lib/pact_broker/tags/eager_loaders.rb +47 -0
  66. data/lib/pact_broker/tags/repository.rb +3 -1
  67. data/lib/pact_broker/tags/service.rb +0 -3
  68. data/lib/pact_broker/tags/tag_with_latest_flag.rb +1 -0
  69. data/lib/pact_broker/test/http_test_data_builder.rb +23 -7
  70. data/lib/pact_broker/test/test_data_builder.rb +36 -3
  71. data/lib/pact_broker/ui/view_models/index_item.rb +9 -0
  72. data/lib/pact_broker/ui/view_models/matrix_line.rb +36 -0
  73. data/lib/pact_broker/ui/views/index/show-with-tags.haml +8 -0
  74. data/lib/pact_broker/ui/views/matrix/show.haml +10 -0
  75. data/lib/pact_broker/verifications/latest_verification_id_for_pact_version_and_provider_version.rb +7 -5
  76. data/lib/pact_broker/version.rb +1 -1
  77. data/lib/pact_broker/versions/eager_loaders.rb +71 -0
  78. data/lib/pact_broker/versions/lazy_loaders.rb +13 -0
  79. data/lib/pact_broker/versions/repository.rb +11 -2
  80. data/lib/pact_broker/versions/service.rb +5 -1
  81. data/lib/pact_broker/webhooks/execution.rb +3 -2
  82. data/lib/pact_broker/webhooks/latest_triggered_webhook.rb +2 -0
  83. data/lib/pact_broker/webhooks/triggered_webhook.rb +11 -4
  84. data/lib/pact_broker/webhooks/webhook.rb +1 -1
  85. data/lib/pact_broker/webhooks/webhook_event.rb +1 -1
  86. data/lib/pact_broker/webhooks/webhook_request_logger.rb +5 -1
  87. data/lib/sequel/plugins/upsert.rb +18 -4
  88. data/public/stylesheets/index.css +22 -1
  89. data/public/stylesheets/matrix.css +0 -21
  90. data/regression/can_i_deploy_spec.rb +5 -4
  91. data/regression/index_spec.rb +26 -0
  92. data/regression/regression_helper.rb +29 -3
  93. data/regression/script/clear.sh +3 -0
  94. data/regression/script/run.sh +3 -0
  95. data/script/demonstrate-version-branches.rb +33 -0
  96. data/script/pry.rb +2 -2
  97. data/spec/features/create_version_spec.rb +44 -0
  98. data/spec/fixtures/dashboard.json +4 -2
  99. data/spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb +4 -2
  100. data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +11 -6
  101. data/spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb +6 -0
  102. data/spec/lib/pact_broker/api/resources/provider_pacts_for_verification_spec.rb +4 -0
  103. data/spec/lib/pact_broker/config/space_delimited_integer_list_spec.rb +47 -0
  104. data/spec/lib/pact_broker/configuration_spec.rb +12 -0
  105. data/spec/lib/pact_broker/domain/tag_spec.rb +101 -27
  106. data/spec/lib/pact_broker/domain/version_spec.rb +103 -15
  107. data/spec/lib/pact_broker/domain/webhook_spec.rb +1 -1
  108. data/spec/lib/pact_broker/index/service_spec.rb +89 -15
  109. data/spec/lib/pact_broker/pacts/pact_publication_dataset_module_spec.rb +400 -0
  110. data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +434 -14
  111. data/spec/lib/pact_broker/pacts/repository_find_for_verification_fallback_spec.rb +1 -1
  112. data/spec/lib/pact_broker/pacts/repository_find_for_verification_spec.rb +1 -1
  113. data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb +224 -0
  114. data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb +20 -7
  115. data/spec/lib/pact_broker/pacts/selector_spec.rb +3 -2
  116. data/spec/lib/pact_broker/pacts/service_find_for_verification_spec.rb +2 -3
  117. data/spec/lib/pact_broker/pacts/service_spec.rb +2 -2
  118. data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +57 -10
  119. data/spec/lib/pact_broker/tags/repository_spec.rb +2 -0
  120. data/spec/lib/pact_broker/versions/repository_spec.rb +44 -0
  121. data/spec/lib/pact_broker/webhooks/webhook_request_logger_spec.rb +8 -0
  122. data/spec/lib/sequel/plugins/upsert_spec.rb +31 -3
  123. data/spec/spec_helper.rb +17 -5
  124. data/spec/support/approvals.rb +24 -0
  125. data/tasks/db.rake +1 -0
  126. data/tasks/rspec.rake +1 -1
  127. metadata +36 -3
@@ -23,6 +23,8 @@ module PactBroker
23
23
  it "sets the properties" do
24
24
  expect(subject.name).to eq "prod"
25
25
  expect(subject.version.id).to eq td.version.id
26
+ expect(subject.version_order).to eq td.version.order
27
+ expect(subject.pacticipant_id).to eq td.version.pacticipant_id
26
28
  end
27
29
 
28
30
  context "when the tag already exists" do
@@ -122,6 +122,50 @@ module PactBroker
122
122
  end
123
123
  end
124
124
  end
125
+
126
+ describe "#create_or_update" do
127
+ before do
128
+ td.subtract_day
129
+ .create_consumer("Foo")
130
+ .create_consumer_version(version_number, branch: "original-branch", build_url: "original-build-url")
131
+ .create_consumer_version_tag("dev")
132
+ end
133
+
134
+ let(:pacticipant) { td.and_return(:consumer) }
135
+ let(:version_number) { "1234" }
136
+ let(:version) { PactBroker::Domain::Version.new(branch: "new-branch") }
137
+
138
+ subject { Repository.new.create_or_update(pacticipant, version_number, version) }
139
+
140
+ it "overwrites the values" do
141
+ expect(subject.branch).to eq "new-branch"
142
+ expect(subject.build_url).to eq nil
143
+ end
144
+
145
+ it "does not change the tags" do
146
+ expect { subject }.to_not change { PactBroker::Domain::Version.for("Foo", "1234").tags }
147
+ end
148
+
149
+ it "does not change the created date" do
150
+ expect { subject }.to_not change { PactBroker::Domain::Version.for("Foo", "1234").created_at }
151
+ end
152
+
153
+ it "does change the updated date" do
154
+ expect { subject }.to change { PactBroker::Domain::Version.for("Foo", "1234").updated_at }
155
+ end
156
+
157
+ it "maintains the order" do
158
+ expect { subject }.to_not change { PactBroker::Domain::Version.for("Foo", "1234").order }
159
+ end
160
+
161
+ context "when the version does not already exist" do
162
+ let(:version) { PactBroker::Domain::Version.new(number: "555", branch: "new-branch") }
163
+
164
+ it "sets the order" do
165
+ expect(subject.order).to_not be nil
166
+ end
167
+ end
168
+ end
125
169
  end
126
170
  end
127
171
  end
@@ -129,6 +129,14 @@ module PactBroker
129
129
  end
130
130
  end
131
131
 
132
+ context "when the response code '100' is not in 'webhook_http_code_success'" do
133
+ let(:status) { 100 }
134
+
135
+ it "not successful, code '100' not in 'webhook_http_code_success'" do
136
+ expect(logs).to include "oops"
137
+ end
138
+ end
139
+
132
140
  context "when the response code is not successful" do
133
141
  let(:status) { 400 }
134
142
 
@@ -24,6 +24,12 @@ module Sequel
24
24
  plugin :upsert, identifying_columns: [:provider_id, :consumer_version_id]
25
25
  end
26
26
 
27
+ describe PacticipantNoUpsert do
28
+ it "has an _insert_dataset method" do
29
+ expect(PacticipantNoUpsert.private_instance_methods).to include (:_insert_dataset)
30
+ end
31
+ end
32
+
27
33
  describe "LatestPactPublicationIdForConsumerVersion" do
28
34
  before do
29
35
  td.create_pact_with_hierarchy("Foo", "1", "Bar")
@@ -102,10 +108,20 @@ module Sequel
102
108
 
103
109
  context "when a duplicate Version is inserted with upsert" do
104
110
  let!(:pacticipant) { Pacticipant.new(name: "Foo").save }
105
- let!(:original_version) { Version.new(number: "1", pacticipant_id: pacticipant.id).upsert }
111
+ let!(:original_version) do
112
+ version = Version.new(
113
+ number: "1",
114
+ pacticipant_id: pacticipant.id,
115
+ branch: "original-branch",
116
+ build_url: "original-url"
117
+ ).upsert
118
+ Version.where(id: version.id).update(created_at: yesterday, updated_at: yesterday)
119
+ version
120
+ end
121
+ let(:yesterday) { DateTime.now - 2 }
106
122
 
107
123
  subject do
108
- Version.new(number: "1", pacticipant_id: pacticipant.id).upsert
124
+ Version.new(number: "1", pacticipant_id: pacticipant.id, branch: "new-branch").upsert
109
125
  end
110
126
 
111
127
  it "does not raise an error" do
@@ -113,12 +129,24 @@ module Sequel
113
129
  end
114
130
 
115
131
  it "sets the values on the object" do
116
- expect(subject.id).to eq original_version.id
132
+ expect(subject.branch).to eq "new-branch"
133
+ end
134
+
135
+ it "nils out values that weren't set on the second model" do
136
+ expect(subject.build_url).to eq nil
117
137
  end
118
138
 
119
139
  it "does not insert another row" do
120
140
  expect { subject }.to_not change { Version.count }
121
141
  end
142
+
143
+ it "does not change the created_at" do
144
+ expect { subject }.to_not change { Version.where(number: "1").first.created_at }
145
+ end
146
+
147
+ it "does change the updated_at" do
148
+ expect { subject }.to change { Version.where(number: "1").first.updated_at }
149
+ end
122
150
  end
123
151
  end
124
152
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,7 @@
1
+ # Can't stop the gression tests loading the spec_helper becaues of the .rspec file
2
+ # At least we can avoid executing it.
3
+ return if ENV["REGRESSION"] == "true"
4
+
1
5
  $: << File.expand_path("../../", __FILE__)
2
6
 
3
7
  RACK_ENV = ENV['RACK_ENV'] = 'test'
@@ -12,7 +16,6 @@ require 'rspec/pact/matchers'
12
16
  require 'sucker_punch/testing/inline'
13
17
  require 'webmock/rspec'
14
18
  require 'pact_broker/policies'
15
- require 'approvals/rspec'
16
19
 
17
20
  Dir.glob("./spec/support/**/*.rb") { |file| require file }
18
21
 
@@ -20,10 +23,6 @@ WebMock.disable_net_connect!(allow_localhost: true)
20
23
 
21
24
  I18n.config.enforce_available_locales = false
22
25
 
23
- Approvals.configure do |c|
24
- c.approvals_path = 'spec/fixtures/approvals/'
25
- end
26
-
27
26
  RSpec.configure do | config |
28
27
  config.before :each do
29
28
  PactBroker.reset_configuration
@@ -53,6 +52,19 @@ RSpec.configure do | config |
53
52
  config.example_status_persistence_file_path = "./spec/examples.txt"
54
53
  config.filter_run_excluding skip: true
55
54
 
55
+ config.after(:each) do | example, something |
56
+ if example.exception.is_a?(Approvals::ApprovalError)
57
+ require "pact/support"
58
+ parts = example.exception.message.split('"')
59
+ received_file = parts[1]
60
+ approved_file = parts[3]
61
+ received_hash = JSON.parse(File.read(received_file))
62
+ approved_hash = JSON.parse(File.read(approved_file))
63
+ diff = Pact::Matchers.diff(approved_hash, received_hash)
64
+ puts Pact::Matchers::UnixDiffFormatter.call(diff)
65
+ end
66
+ end
67
+
56
68
  def app
57
69
  PactBroker::API
58
70
  end
@@ -0,0 +1,24 @@
1
+ require 'approvals/rspec'
2
+ require 'pact/support'
3
+
4
+ Approvals.configure do |c|
5
+ c.approvals_path = 'spec/fixtures/approvals/'
6
+ end
7
+
8
+ def print_diff(exception)
9
+ parts = exception.message.split('"')
10
+ received_file = parts[1]
11
+ approved_file = parts[3]
12
+ received_hash = JSON.parse(File.read(received_file))
13
+ approved_hash = JSON.parse(File.read(approved_file))
14
+ diff = Pact::Matchers.diff(approved_hash, received_hash)
15
+ puts Pact::Matchers::UnixDiffFormatter.call(diff)
16
+ end
17
+
18
+ RSpec.configure do | config |
19
+ config.after(:each) do | example |
20
+ if example.exception.is_a?(Approvals::ApprovalError)
21
+ print_diff(example.exception)
22
+ end
23
+ end
24
+ end
data/tasks/db.rake CHANGED
@@ -98,6 +98,7 @@ namespace :db do
98
98
  desc 'Annotate the Sequel domain classes with schema information'
99
99
  task :annotate do
100
100
  begin
101
+ raise "Need to set INSTALL_PG=true" unless ENV["INSTALL_PG"] == "true"
101
102
  ENV['RACK_ENV'] = 'test'
102
103
  ENV['DATABASE_ADAPTER'] = 'docker_postgres'
103
104
  load 'tasks/docker_database.rb'
data/tasks/rspec.rake CHANGED
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  RSpec::Core::RakeTask.new('regression') do |task|
13
13
  task.pattern = 'regression/**{,/*/**}/*_spec.rb'
14
- task.rspec_opts = '--require regression/regression_helper.rb'
14
+ task.rspec_opts = '--require ./regression/regression_helper.rb'
15
15
  end
16
16
 
17
17
  RSpec::Core::RakeTask.new('spec:slow') do |task|
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.76.2
4
+ version: 2.77.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: 2021-01-29 00:00:00.000000000 Z
13
+ date: 2021-02-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -373,6 +373,7 @@ files:
373
373
  - ".github/ISSUE_TEMPLATE.md"
374
374
  - ".github/PULL_REQUEST_TEMPLATE.md"
375
375
  - ".github/workflows/release_gem.yml"
376
+ - ".github/workflows/test-ruby-3.yml"
376
377
  - ".github/workflows/test.yml"
377
378
  - ".gitignore"
378
379
  - ".optic/.gitignore"
@@ -407,6 +408,7 @@ files:
407
408
  - db/ddl_statements/latest_pact_consumer_version_orders.rb
408
409
  - db/ddl_statements/latest_pact_publications_by_consumer_versions.rb
409
410
  - db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb
411
+ - db/ddl_statements/latest_tagged_pact_publications.rb
410
412
  - db/ddl_statements/latest_triggered_webhooks.rb
411
413
  - db/ddl_statements/latest_verification_ids_for_consumer_and_provider.rb
412
414
  - db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb
@@ -532,6 +534,12 @@ files:
532
534
  - db/migrations/20201026_update_latest_verification_ids_for_consumer_and_provider.rb
533
535
  - db/migrations/20210115_add_webhook_foreign_key_indexes.rb
534
536
  - db/migrations/20210116_add_context_to_triggered_webhook.rb
537
+ - db/migrations/20210117_add_branch_to_version.rb
538
+ - db/migrations/20210202_add_created_at_to_head_pact_tags.rb
539
+ - db/migrations/20210205_add_pacticipant_id_to_tag.rb
540
+ - db/migrations/20210206_add_index_to_tags_and_versions.rb
541
+ - db/migrations/20210207_optimise_latest_verification_ids_for_consumer_version_tags.rb
542
+ - db/migrations/20210208_optimise_latest_tagged_pact_cv_orders.rb
535
543
  - db/migrations/migration_helper.rb
536
544
  - db/test/backwards_compatibility/.rspec
537
545
  - db/test/backwards_compatibility/Appraisals
@@ -681,6 +689,7 @@ files:
681
689
  - lib/pact_broker/api/resources/latest_verification_for_latest_pact.rb
682
690
  - lib/pact_broker/api/resources/latest_verification_for_pact.rb
683
691
  - lib/pact_broker/api/resources/latest_verifications_for_consumer_version.rb
692
+ - lib/pact_broker/api/resources/latest_version.rb
684
693
  - lib/pact_broker/api/resources/matrix.rb
685
694
  - lib/pact_broker/api/resources/matrix_badge.rb
686
695
  - lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb
@@ -725,6 +734,7 @@ files:
725
734
  - lib/pact_broker/config/repository.rb
726
735
  - lib/pact_broker/config/save.rb
727
736
  - lib/pact_broker/config/setting.rb
737
+ - lib/pact_broker/config/space_delimited_integer_list.rb
728
738
  - lib/pact_broker/config/space_delimited_string_list.rb
729
739
  - lib/pact_broker/configuration.rb
730
740
  - lib/pact_broker/constants.rb
@@ -739,6 +749,7 @@ files:
739
749
  - lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications.rb
740
750
  - lib/pact_broker/db/data_migrations/set_created_at_for_latest_pact_publications.rb
741
751
  - lib/pact_broker/db/data_migrations/set_created_at_for_latest_verifications.rb
752
+ - lib/pact_broker/db/data_migrations/set_extra_columns_for_tags.rb
742
753
  - lib/pact_broker/db/data_migrations/set_latest_version_sequence_value.rb
743
754
  - lib/pact_broker/db/data_migrations/set_pacticipant_ids_for_verifications.rb
744
755
  - lib/pact_broker/db/data_migrations/set_webhooks_enabled.rb
@@ -768,6 +779,7 @@ files:
768
779
  - lib/pact_broker/doc/views/index/latest-tagged-version.markdown
769
780
  - lib/pact_broker/doc/views/index/latest-version.markdown
770
781
  - lib/pact_broker/doc/views/index/pacticipant-version-tag.markdown
782
+ - lib/pact_broker/doc/views/index/pacticipant-version.markdown
771
783
  - lib/pact_broker/doc/views/index/pacticipants.markdown
772
784
  - lib/pact_broker/doc/views/index/provider-pacts-with-tag.markdown
773
785
  - lib/pact_broker/doc/views/index/provider-pacts.markdown
@@ -854,6 +866,7 @@ files:
854
866
  - lib/pact_broker/pacts/content.rb
855
867
  - lib/pact_broker/pacts/create_formatted_diff.rb
856
868
  - lib/pact_broker/pacts/diff.rb
869
+ - lib/pact_broker/pacts/eager_loaders.rb
857
870
  - lib/pact_broker/pacts/generate_interaction_sha.rb
858
871
  - lib/pact_broker/pacts/generate_sha.rb
859
872
  - lib/pact_broker/pacts/head_pact.rb
@@ -861,12 +874,15 @@ files:
861
874
  - lib/pact_broker/pacts/latest_pact_publications.rb
862
875
  - lib/pact_broker/pacts/latest_pact_publications_by_consumer_version.rb
863
876
  - lib/pact_broker/pacts/latest_tagged_pact_publications.rb
877
+ - lib/pact_broker/pacts/lazy_loaders.rb
864
878
  - lib/pact_broker/pacts/merger.rb
865
879
  - lib/pact_broker/pacts/metadata.rb
866
880
  - lib/pact_broker/pacts/order_hash_keys.rb
867
881
  - lib/pact_broker/pacts/pact_params.rb
868
882
  - lib/pact_broker/pacts/pact_publication.rb
883
+ - lib/pact_broker/pacts/pact_publication_dataset_module.rb
869
884
  - lib/pact_broker/pacts/pact_version.rb
885
+ - lib/pact_broker/pacts/pacts_for_verification_repository.rb
870
886
  - lib/pact_broker/pacts/parse.rb
871
887
  - lib/pact_broker/pacts/placeholder_pact.rb
872
888
  - lib/pact_broker/pacts/repository.rb
@@ -885,6 +901,7 @@ files:
885
901
  - lib/pact_broker/repositories/helpers.rb
886
902
  - lib/pact_broker/services.rb
887
903
  - lib/pact_broker/string_refinements.rb
904
+ - lib/pact_broker/tags/eager_loaders.rb
888
905
  - lib/pact_broker/tags/head_pact_tags.rb
889
906
  - lib/pact_broker/tags/repository.rb
890
907
  - lib/pact_broker/tags/service.rb
@@ -937,7 +954,9 @@ files:
937
954
  - lib/pact_broker/verifications/summary_for_consumer_version.rb
938
955
  - lib/pact_broker/version.rb
939
956
  - lib/pact_broker/versions/abbreviate_number.rb
957
+ - lib/pact_broker/versions/eager_loaders.rb
940
958
  - lib/pact_broker/versions/latest_version.rb
959
+ - lib/pact_broker/versions/lazy_loaders.rb
941
960
  - lib/pact_broker/versions/parse_semantic_version.rb
942
961
  - lib/pact_broker/versions/repository.rb
943
962
  - lib/pact_broker/versions/sequence.rb
@@ -1055,9 +1074,13 @@ files:
1055
1074
  - public/stylesheets/pact.css
1056
1075
  - regression/.gitignore
1057
1076
  - regression/can_i_deploy_spec.rb
1077
+ - regression/index_spec.rb
1058
1078
  - regression/regression_helper.rb
1059
1079
  - regression/script/approval-all.sh
1080
+ - regression/script/clear.sh
1081
+ - regression/script/run.sh
1060
1082
  - script/db-spec.sh
1083
+ - script/demonstrate-version-branches.rb
1061
1084
  - script/docker-container/test.sh
1062
1085
  - script/docker/db-execute-sql-file.sh
1063
1086
  - script/docker/db-psql.sh
@@ -1107,6 +1130,7 @@ files:
1107
1130
  - spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb
1108
1131
  - spec/features/can_i_deploy_spec.rb
1109
1132
  - spec/features/create_pacticipant_spec.rb
1133
+ - spec/features/create_version_spec.rb
1110
1134
  - spec/features/create_webhook_spec.rb
1111
1135
  - spec/features/delete_integration_spec.rb
1112
1136
  - spec/features/delete_label_spec.rb
@@ -1271,6 +1295,7 @@ files:
1271
1295
  - spec/lib/pact_broker/config/load_spec.rb
1272
1296
  - spec/lib/pact_broker/config/save_and_load_spec.rb
1273
1297
  - spec/lib/pact_broker/config/save_spec.rb
1298
+ - spec/lib/pact_broker/config/space_delimited_integer_list_spec.rb
1274
1299
  - spec/lib/pact_broker/config/space_delimited_string_list_spec.rb
1275
1300
  - spec/lib/pact_broker/configuration_spec.rb
1276
1301
  - spec/lib/pact_broker/db/clean_incremental_spec.rb
@@ -1333,10 +1358,12 @@ files:
1333
1358
  - spec/lib/pact_broker/pacts/merger_spec.rb
1334
1359
  - spec/lib/pact_broker/pacts/metadata_spec.rb
1335
1360
  - spec/lib/pact_broker/pacts/pact_params_spec.rb
1361
+ - spec/lib/pact_broker/pacts/pact_publication_dataset_module_spec.rb
1336
1362
  - spec/lib/pact_broker/pacts/pact_publication_spec.rb
1337
1363
  - spec/lib/pact_broker/pacts/pact_version_spec.rb
1338
1364
  - spec/lib/pact_broker/pacts/repository_find_for_verification_fallback_spec.rb
1339
1365
  - spec/lib/pact_broker/pacts/repository_find_for_verification_spec.rb
1366
+ - spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb
1340
1367
  - spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb
1341
1368
  - spec/lib/pact_broker/pacts/repository_spec.rb
1342
1369
  - spec/lib/pact_broker/pacts/selected_pact_spec.rb
@@ -1404,6 +1431,7 @@ files:
1404
1431
  - spec/service_consumers/provider_states_for_pact_broker_client.rb
1405
1432
  - spec/service_consumers/provider_states_for_pact_ruby.rb
1406
1433
  - spec/spec_helper.rb
1434
+ - spec/support/approvals.rb
1407
1435
  - spec/support/database.rb
1408
1436
  - spec/support/database_cleaner.rb
1409
1437
  - spec/support/fixture_helpers.rb
@@ -1501,7 +1529,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1501
1529
  - !ruby/object:Gem::Version
1502
1530
  version: '0'
1503
1531
  requirements: []
1504
- rubygems_version: 3.2.7
1532
+ rubygems_version: 3.2.9
1505
1533
  signing_key:
1506
1534
  specification_version: 4
1507
1535
  summary: See description
@@ -1509,6 +1537,7 @@ test_files:
1509
1537
  - spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb
1510
1538
  - spec/features/can_i_deploy_spec.rb
1511
1539
  - spec/features/create_pacticipant_spec.rb
1540
+ - spec/features/create_version_spec.rb
1512
1541
  - spec/features/create_webhook_spec.rb
1513
1542
  - spec/features/delete_integration_spec.rb
1514
1543
  - spec/features/delete_label_spec.rb
@@ -1673,6 +1702,7 @@ test_files:
1673
1702
  - spec/lib/pact_broker/config/load_spec.rb
1674
1703
  - spec/lib/pact_broker/config/save_and_load_spec.rb
1675
1704
  - spec/lib/pact_broker/config/save_spec.rb
1705
+ - spec/lib/pact_broker/config/space_delimited_integer_list_spec.rb
1676
1706
  - spec/lib/pact_broker/config/space_delimited_string_list_spec.rb
1677
1707
  - spec/lib/pact_broker/configuration_spec.rb
1678
1708
  - spec/lib/pact_broker/db/clean_incremental_spec.rb
@@ -1735,10 +1765,12 @@ test_files:
1735
1765
  - spec/lib/pact_broker/pacts/merger_spec.rb
1736
1766
  - spec/lib/pact_broker/pacts/metadata_spec.rb
1737
1767
  - spec/lib/pact_broker/pacts/pact_params_spec.rb
1768
+ - spec/lib/pact_broker/pacts/pact_publication_dataset_module_spec.rb
1738
1769
  - spec/lib/pact_broker/pacts/pact_publication_spec.rb
1739
1770
  - spec/lib/pact_broker/pacts/pact_version_spec.rb
1740
1771
  - spec/lib/pact_broker/pacts/repository_find_for_verification_fallback_spec.rb
1741
1772
  - spec/lib/pact_broker/pacts/repository_find_for_verification_spec.rb
1773
+ - spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_branch_spec.rb
1742
1774
  - spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb
1743
1775
  - spec/lib/pact_broker/pacts/repository_spec.rb
1744
1776
  - spec/lib/pact_broker/pacts/selected_pact_spec.rb
@@ -1806,6 +1838,7 @@ test_files:
1806
1838
  - spec/service_consumers/provider_states_for_pact_broker_client.rb
1807
1839
  - spec/service_consumers/provider_states_for_pact_ruby.rb
1808
1840
  - spec/spec_helper.rb
1841
+ - spec/support/approvals.rb
1809
1842
  - spec/support/database.rb
1810
1843
  - spec/support/database_cleaner.rb
1811
1844
  - spec/support/fixture_helpers.rb