pact_broker 2.40.0 → 2.41.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +36 -0
  3. data/DEVELOPER_DOCUMENTATION.md +11 -0
  4. data/db/ddl_statements/head_pact_tags.rb +10 -0
  5. data/db/ddl_statements/latest_pact_consumer_version_orders.rb +16 -0
  6. data/db/ddl_statements/latest_pact_publications_by_consumer_versions.rb +16 -0
  7. data/db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb +23 -0
  8. data/db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb +15 -0
  9. data/db/ddl_statements/{latest_verification_ids_for_pact_versions_v001.rb → latest_verification_ids_for_pact_versions.rb} +0 -0
  10. data/db/migrations/000028_create_all_pact_publications.rb +1 -0
  11. data/db/migrations/20180311_optimise_head_matrix.rb +1 -9
  12. data/db/migrations/20180722_recreate_views.rb +6 -19
  13. data/db/migrations/20191028_optimise_latest_tagged_pact_cv_orders.rb +13 -0
  14. data/db/migrations/20191030_optimise_latest_pact_publications_by_consumer_versions_.rb +13 -0
  15. data/db/migrations/20191031_optimise_latest_verification_ids_for_consumer_version_tags.rb +13 -0
  16. data/db/migrations/20191101_create_head_pact_tags.rb +11 -0
  17. data/lib/db.rb +1 -0
  18. data/lib/pact_broker/api/contracts/dry_validation_predicates.rb +15 -0
  19. data/lib/pact_broker/api/contracts/dry_validation_workarounds.rb +38 -0
  20. data/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb +34 -0
  21. data/lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb +12 -20
  22. data/lib/pact_broker/api/decorators/matrix_decorator.rb +25 -6
  23. data/lib/pact_broker/api/decorators/relationships_csv_decorator.rb +4 -12
  24. data/lib/pact_broker/api/decorators/verifiable_pact_decorator.rb +5 -2
  25. data/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator.rb +21 -9
  26. data/lib/pact_broker/api/renderers/integrations_dot_renderer.rb +1 -1
  27. data/lib/pact_broker/api/resources/base_resource.rb +1 -1
  28. data/lib/pact_broker/api/resources/can_i_deploy.rb +2 -9
  29. data/lib/pact_broker/api/resources/matrix.rb +2 -8
  30. data/lib/pact_broker/api/resources/matrix_for_consumer_and_provider.rb +1 -0
  31. data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +36 -7
  32. data/lib/pact_broker/app.rb +1 -0
  33. data/lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb +1 -1
  34. data/lib/pact_broker/db/seed_example_data.rb +8 -5
  35. data/lib/pact_broker/diagnostic/resources/base_resource.rb +0 -8
  36. data/lib/pact_broker/domain/index_item.rb +47 -16
  37. data/lib/pact_broker/domain/pact.rb +12 -4
  38. data/lib/pact_broker/domain/version.rb +2 -0
  39. data/lib/pact_broker/hash_refinements.rb +48 -0
  40. data/lib/pact_broker/index/page.rb +12 -0
  41. data/lib/pact_broker/index/service.rb +156 -21
  42. data/lib/pact_broker/integrations/integration.rb +22 -0
  43. data/lib/pact_broker/locale/en.yml +2 -0
  44. data/lib/pact_broker/logging.rb +0 -1
  45. data/lib/pact_broker/matrix/aggregated_row.rb +3 -9
  46. data/lib/pact_broker/matrix/deployment_status_summary.rb +5 -5
  47. data/lib/pact_broker/matrix/head_row.rb +2 -0
  48. data/lib/pact_broker/matrix/quick_row.rb +7 -7
  49. data/lib/pact_broker/matrix/repository.rb +2 -4
  50. data/lib/pact_broker/pacticipants/repository.rb +1 -1
  51. data/lib/pact_broker/pacts/pact_publication.rb +27 -4
  52. data/lib/pact_broker/pacts/repository.rb +41 -18
  53. data/lib/pact_broker/pacts/service.rb +23 -3
  54. data/lib/pact_broker/pacts/verifiable_pact.rb +8 -2
  55. data/lib/pact_broker/pacts/verifiable_pact_messages.rb +14 -8
  56. data/lib/pact_broker/string_refinements.rb +36 -1
  57. data/lib/pact_broker/tags/head_pact_tags.rb +12 -0
  58. data/lib/pact_broker/tags/tag_with_latest_flag.rb +0 -1
  59. data/lib/pact_broker/test/test_data_builder.rb +1 -1
  60. data/lib/pact_broker/ui/controllers/index.rb +23 -2
  61. data/lib/pact_broker/ui/view_models/index_item.rb +7 -1
  62. data/lib/pact_broker/ui/view_models/index_items.rb +10 -8
  63. data/lib/pact_broker/ui/view_models/matrix_line.rb +14 -21
  64. data/lib/pact_broker/ui/view_models/matrix_tag.rb +6 -8
  65. data/lib/pact_broker/ui/views/index/_pagination.haml +31 -0
  66. data/lib/pact_broker/ui/views/index/show-with-tags.haml +6 -3
  67. data/lib/pact_broker/ui/views/index/show.haml +5 -2
  68. data/lib/pact_broker/ui/views/matrix/show.haml +6 -9
  69. data/lib/pact_broker/version.rb +1 -1
  70. data/lib/pact_broker/webhooks/webhook.rb +2 -2
  71. data/lib/pact_broker/webhooks/webhook_execution_result.rb +3 -18
  72. data/public/javascripts/matrix.js +26 -1
  73. data/public/javascripts/pagination.js +1127 -0
  74. data/public/stylesheets/index.css +13 -0
  75. data/public/stylesheets/matrix.css +10 -1
  76. data/spec/features/get_provider_pacts_for_verification_spec.rb +44 -9
  77. data/spec/features/pending_pacts_spec.rb +1 -1
  78. data/spec/features/wip_pacts_spec.rb +138 -0
  79. data/spec/integration/app_spec.rb +1 -1
  80. data/spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb +90 -0
  81. data/spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb +26 -4
  82. data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +36 -2
  83. data/spec/lib/pact_broker/api/decorators/verifiable_pact_decorator_spec.rb +24 -1
  84. data/spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb +62 -18
  85. data/spec/lib/pact_broker/api/resources/base_resource_spec.rb +10 -0
  86. data/spec/lib/pact_broker/api/resources/provider_pacts_for_verification_spec.rb +75 -6
  87. data/spec/lib/pact_broker/hash_refinements_spec.rb +24 -0
  88. data/spec/lib/pact_broker/index/service_spec.rb +38 -2
  89. data/spec/lib/pact_broker/integrations/integration_spec.rb +79 -41
  90. data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +2 -0
  91. data/spec/lib/pact_broker/pacts/repository_find_wip_pact_versions_for_provider_spec.rb +17 -2
  92. data/spec/lib/pact_broker/pacts/service_spec.rb +56 -0
  93. data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +12 -1
  94. data/spec/lib/pact_broker/ui/controllers/index_spec.rb +28 -6
  95. data/spec/lib/pact_broker/ui/view_models/index_items_spec.rb +8 -29
  96. data/spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb +41 -0
  97. metadata +24 -3
@@ -99,12 +99,14 @@ module PactBroker
99
99
  context "when the pact is the latest for a tag" do
100
100
  it "returns the relevant tag names" do
101
101
  expect(pact_publication.head_tag_names).to eq ["yes"]
102
+ expect(pact_publication.head_pact_tags.collect(&:name)).to eq ["yes"]
102
103
  end
103
104
  end
104
105
 
105
106
  context "when the pact is not the latest for a tag" do
106
107
  it "returns the relevant tag names" do
107
108
  expect(pact_publication.head_tag_names).to eq ["yes"]
109
+ expect(pact_publication.head_pact_tags.collect(&:name)).to eq ["yes"]
108
110
  end
109
111
  end
110
112
  end
@@ -6,9 +6,11 @@ module PactBroker
6
6
  let(:td) { TestDataBuilder.new }
7
7
 
8
8
  describe "find_wip_pact_versions_for_provider" do
9
-
10
9
  let(:provider_tags) { %w[dev] }
11
- subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_tags) }
10
+ let(:options) { { include_wip_pacts_since: include_wip_pacts_since } }
11
+ let(:include_wip_pacts_since) { (Date.today - 1).to_datetime }
12
+
13
+ subject { Repository.new.find_wip_pact_versions_for_provider("bar", provider_tags, options) }
12
14
 
13
15
  context "when there are no tags" do
14
16
  let(:provider_tags) { [] }
@@ -118,6 +120,19 @@ module PactBroker
118
120
  expect(subject.size).to be 0
119
121
  end
120
122
  end
123
+
124
+ context "when the pact was published before the specified include_wip_pacts_since" do
125
+ before do
126
+ td.create_pact_with_hierarchy("foo", "1", "bar")
127
+ .create_consumer_version_tag("prod")
128
+ end
129
+
130
+ let(:include_wip_pacts_since) { (Date.today + 3).to_datetime }
131
+
132
+ it "is not included" do
133
+ expect(subject.size).to be 0
134
+ end
135
+ end
121
136
  end
122
137
  end
123
138
  end
@@ -155,6 +155,62 @@ module PactBroker
155
155
  }.by(-1)
156
156
  end
157
157
  end
158
+
159
+ describe "find_for_verification integration test" do
160
+ before do
161
+ td.create_pact_with_hierarchy("Foo", "1", "Bar")
162
+ .create_consumer_version_tag("feat-1", comment: "latest for feat-1")
163
+ .create_consumer_version("2")
164
+ .create_pact(comment: "overall latest")
165
+ .create_consumer_version("3")
166
+ end
167
+
168
+ let(:options) { { } }
169
+
170
+ subject { Service.find_for_verification("Bar", ["master"], [], options) }
171
+
172
+
173
+ context "when the consumer version tags are empty" do
174
+ it "returns the latest overall pact for the consumer" do
175
+ expect(subject.first.consumer_version_number).to eq "2"
176
+ expect(subject.first.wip).to be false
177
+ end
178
+ end
179
+
180
+ context "when include_wip_pacts_since is not specified" do
181
+ it "does not include the WIP pacts" do
182
+ expect(subject.size).to eq 1
183
+ end
184
+ end
185
+
186
+ context "when WIP pacts are included" do
187
+ let(:options) do
188
+ {
189
+ include_wip_pacts_since: (Date.today - 1).to_datetime
190
+ }
191
+ end
192
+ it "returns the WIP pacts as well as the specified pacts" do
193
+ expect(subject.size).to eq 2
194
+ expect(subject.last.consumer_version_number).to eq "1"
195
+ expect(subject.last.wip).to be true
196
+ end
197
+
198
+ context "when the WIP pact has the same content as a specified pact" do
199
+ before do
200
+ td.create_pact_with_hierarchy("Blah", "1", "Wiffle")
201
+ .create_consumer_version_tag("feat-1", comment: "latest for feat-1")
202
+ .create_consumer_version("2")
203
+ .republish_same_pact(comment: "overall latest")
204
+ end
205
+
206
+ subject { Service.find_for_verification("Wiffle", ["master"], [], options) }
207
+
208
+ it "is not included" do
209
+ expect(subject.size).to eq 1
210
+ end
211
+ end
212
+ end
213
+ end
158
214
  end
159
215
  end
160
216
  end
@@ -8,6 +8,7 @@ module PactBroker
8
8
  let(:pending_provider_tags) { [] }
9
9
  let(:non_pending_provider_tags) { [] }
10
10
  let(:pending) { false }
11
+ let(:wip) { false }
11
12
  let(:verifiable_pact) do
12
13
  double(VerifiablePact,
13
14
  head_consumer_tags: head_consumer_tags,
@@ -15,7 +16,8 @@ module PactBroker
15
16
  provider_name: "Bar",
16
17
  pending_provider_tags: pending_provider_tags,
17
18
  non_pending_provider_tags: non_pending_provider_tags,
18
- pending?: pending
19
+ pending?: pending,
20
+ wip?: wip
19
21
  )
20
22
  end
21
23
 
@@ -45,6 +47,15 @@ module PactBroker
45
47
  let(:head_consumer_tags) { %w[dev prod feat-x feat-y] }
46
48
  its(:inclusion_reason) { is_expected.to include "'dev', 'prod', 'feat-x' and 'feat-y'" }
47
49
  end
50
+
51
+ context "when the pact is a WIP pact" do
52
+ let(:wip) { true }
53
+ let(:pending) { true }
54
+ let(:head_consumer_tags) { %w[feat-x] }
55
+ let(:pending_provider_tags) { %w[dev] }
56
+
57
+ its(:inclusion_reason) { is_expected.to include "This pact is being verified because it is a 'work in progress' pact (ie. it is the pact for the latest version of Foo tagged with 'feat-x' and is still in pending state)."}
58
+ end
48
59
  end
49
60
 
50
61
  describe "#pending_reason" do
@@ -1,7 +1,6 @@
1
- require 'spec_helper'
2
- require 'pact_broker/ui/controllers/index'
3
-
4
1
  require 'rack/test'
2
+ require 'pact_broker/ui/controllers/index'
3
+ require 'pact_broker/index/service'
5
4
 
6
5
  module PactBroker
7
6
  module UI
@@ -31,13 +30,36 @@ module PactBroker
31
30
  expect(last_response.status).to eq(200)
32
31
  end
33
32
 
33
+ context "when pagination parameters are present" do
34
+ it "passes through pagination parameters to the search" do
35
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 2, page_size: 40))
36
+ get "/", { page: '2', pageSize: '40' }
37
+ end
38
+ end
39
+
40
+ context "when pagination parameters are not present" do
41
+ context "when tags=true" do
42
+ it "passes through default pagination parameters to the search with page_size=30" do
43
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 1, page_size: 30))
44
+ get "/", { tags: 'true' }
45
+ end
46
+ end
47
+
48
+ context "when not tags=true" do
49
+ it "passes through default pagination parameters to the search with page_size=100" do
50
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(page_number: 1, page_size: 100))
51
+ get "/"
52
+ end
53
+ end
54
+ end
55
+
34
56
  context "with tags=true" do
35
57
  before do
36
58
  allow(PactBroker::Index::Service).to receive(:find_index_items).and_return([])
37
59
  end
38
60
 
39
61
  it "passes tags: true to the IndexService" do
40
- expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: true)
62
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: true))
41
63
  get "/", { tags: 'true' }
42
64
  end
43
65
  end
@@ -48,7 +70,7 @@ module PactBroker
48
70
  end
49
71
 
50
72
  it "passes tags: ['prod'] to the IndexService" do
51
- expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: ["prod"])
73
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: ["prod"]))
52
74
  get "/", { tags: ["prod"] }
53
75
  end
54
76
  end
@@ -59,7 +81,7 @@ module PactBroker
59
81
  end
60
82
 
61
83
  it "passes tags: ['prod'] to the IndexService" do
62
- expect(PactBroker::Index::Service).to receive(:find_index_items).with(tags: ["prod"])
84
+ expect(PactBroker::Index::Service).to receive(:find_index_items).with(hash_including(tags: ["prod"]))
63
85
  get "/", { tags: "prod" }
64
86
  end
65
87
  end
@@ -1,17 +1,20 @@
1
1
  require 'spec_helper'
2
2
  require 'pact_broker/ui/view_models/index_items'
3
+ require 'pact_broker/index/page'
3
4
 
4
5
  module PactBroker
5
6
  module UI
6
7
  module ViewDomain
7
8
  describe IndexItems do
8
9
 
9
- let(:relationship_model_4) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "X") }
10
- let(:relationship_model_2) { double("PactBroker::Domain::IndexItem", consumer_name: "a", provider_name: "y") }
11
- let(:relationship_model_3) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "Z") }
12
- let(:relationship_model_1) { double("PactBroker::Domain::IndexItem", consumer_name: "C", provider_name: "A") }
10
+ let(:relationship_model_4) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "X", consumer_version_order: 1) }
11
+ let(:relationship_model_2) { double("PactBroker::Domain::IndexItem", consumer_name: "a", provider_name: "y", consumer_version_order: 2) }
12
+ let(:relationship_model_3) { double("PactBroker::Domain::IndexItem", consumer_name: "A", provider_name: "Z", consumer_version_order: 3) }
13
+ let(:relationship_model_1) { double("PactBroker::Domain::IndexItem", consumer_name: "C", provider_name: "A", consumer_version_order: 4) }
13
14
 
14
- subject { IndexItems.new([relationship_model_1, relationship_model_3, relationship_model_4, relationship_model_2]) }
15
+ let(:page) { PactBroker::Index::Page.new([relationship_model_1, relationship_model_3, relationship_model_4, relationship_model_2], 100) }
16
+
17
+ subject { IndexItems.new(page) }
15
18
 
16
19
  describe "#each" do
17
20
 
@@ -26,30 +29,6 @@ module PactBroker
26
29
 
27
30
  end
28
31
  end
29
-
30
- describe "size_label" do
31
- context "when there is 1 relationship" do
32
- subject { IndexItems.new([relationship_model_1]) }
33
-
34
- it "returns '1 pact'" do
35
- expect(subject.size_label).to eq "1 pact"
36
- end
37
- end
38
- context "when there are 0 relationships" do
39
- subject { IndexItems.new([]) }
40
-
41
- it "returns '0 pacts'" do
42
- expect(subject.size_label).to eq "0 pacts"
43
- end
44
- end
45
- context "when there is more than 1 relationship" do
46
- subject { IndexItems.new([relationship_model_1, relationship_model_1]) }
47
-
48
- it "returns 'x pacts'" do
49
- expect(subject.size_label).to eq "2 pacts"
50
- end
51
- end
52
- end
53
32
  end
54
33
  end
55
34
  end
@@ -0,0 +1,41 @@
1
+ require "pact_broker/matrix/quick_row"
2
+ require "pact_broker/ui/view_models/matrix_line"
3
+
4
+ module PactBroker
5
+ module UI
6
+ module ViewDomain
7
+ describe MatrixLine do
8
+ let(:line) { instance_spy(PactBroker::Matrix::QuickRow) }
9
+
10
+ subject(:matrix_line) { described_class.new(line) }
11
+
12
+ describe "#provide_version_order" do
13
+ subject(:provider_version_order) { matrix_line.provider_version_order }
14
+
15
+ context "verification execution time exists" do
16
+ let(:verification_executed_at) { Time.now }
17
+
18
+ before do
19
+ allow(line).to receive(:verification_executed_at)
20
+ .and_return(verification_executed_at)
21
+ end
22
+
23
+ it "returns verification execution timestamp" do
24
+ timestamp = verification_executed_at.to_i
25
+
26
+ expect(provider_version_order).to eq(timestamp)
27
+ end
28
+ end
29
+
30
+ context "verification execution time does not exist" do
31
+ before do
32
+ allow(line).to receive(:verification_executed_at).and_return(nil)
33
+ end
34
+
35
+ it { is_expected.to eq(0) }
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ 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.40.0
4
+ version: 2.41.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: 2019-10-25 00:00:00.000000000 Z
13
+ date: 2019-12-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -610,8 +610,12 @@ files:
610
610
  - db/ddl_statements.rb
611
611
  - db/ddl_statements/head_matrix_v001.rb
612
612
  - db/ddl_statements/head_matrix_v002.rb
613
+ - db/ddl_statements/head_pact_tags.rb
614
+ - db/ddl_statements/latest_pact_consumer_version_orders.rb
615
+ - db/ddl_statements/latest_pact_publications_by_consumer_versions.rb
616
+ - db/ddl_statements/latest_tagged_pact_consumer_version_orders.rb
613
617
  - db/ddl_statements/latest_verification_ids_for_consumer_version_tags.rb
614
- - db/ddl_statements/latest_verification_ids_for_pact_versions_v001.rb
618
+ - db/ddl_statements/latest_verification_ids_for_pact_versions.rb
615
619
  - db/migrations/000001_create_pacticipant_table.rb
616
620
  - db/migrations/000002_create_versions_table.rb
617
621
  - db/migrations/000003_create_pacts_table.rb
@@ -719,6 +723,10 @@ files:
719
723
  - db/migrations/20190910_add_test_results_to_latest_verifications.rb
720
724
  - db/migrations/20190911_add_test_results_to_latest_verifications_for_pact_versions.rb
721
725
  - db/migrations/20191025_optimise_latest_verification_ids_for_cv_tags.rb
726
+ - db/migrations/20191028_optimise_latest_tagged_pact_cv_orders.rb
727
+ - db/migrations/20191030_optimise_latest_pact_publications_by_consumer_versions_.rb
728
+ - db/migrations/20191031_optimise_latest_verification_ids_for_consumer_version_tags.rb
729
+ - db/migrations/20191101_create_head_pact_tags.rb
722
730
  - db/migrations/migration_helper.rb
723
731
  - db/test/backwards_compatibility/.rspec
724
732
  - db/test/backwards_compatibility/Appraisals
@@ -774,10 +782,13 @@ files:
774
782
  - lib/pact_broker.rb
775
783
  - lib/pact_broker/api.rb
776
784
  - lib/pact_broker/api/contracts/base_contract.rb
785
+ - lib/pact_broker/api/contracts/dry_validation_predicates.rb
786
+ - lib/pact_broker/api/contracts/dry_validation_workarounds.rb
777
787
  - lib/pact_broker/api/contracts/pacticipant_name_contract.rb
778
788
  - lib/pact_broker/api/contracts/pacticipant_name_validation.rb
779
789
  - lib/pact_broker/api/contracts/put_pact_params_contract.rb
780
790
  - lib/pact_broker/api/contracts/request_validations.rb
791
+ - lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb
781
792
  - lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
782
793
  - lib/pact_broker/api/contracts/verification_contract.rb
783
794
  - lib/pact_broker/api/contracts/webhook_contract.rb
@@ -969,6 +980,7 @@ files:
969
980
  - lib/pact_broker/feature_toggle.rb
970
981
  - lib/pact_broker/groups/service.rb
971
982
  - lib/pact_broker/hash_refinements.rb
983
+ - lib/pact_broker/index/page.rb
972
984
  - lib/pact_broker/index/service.rb
973
985
  - lib/pact_broker/integrations/integration.rb
974
986
  - lib/pact_broker/integrations/service.rb
@@ -1028,6 +1040,7 @@ files:
1028
1040
  - lib/pact_broker/repositories/helpers.rb
1029
1041
  - lib/pact_broker/services.rb
1030
1042
  - lib/pact_broker/string_refinements.rb
1043
+ - lib/pact_broker/tags/head_pact_tags.rb
1031
1044
  - lib/pact_broker/tags/repository.rb
1032
1045
  - lib/pact_broker/tags/service.rb
1033
1046
  - lib/pact_broker/tags/tag_with_latest_flag.rb
@@ -1056,6 +1069,7 @@ files:
1056
1069
  - lib/pact_broker/ui/views/index/_css_and_js.haml
1057
1070
  - lib/pact_broker/ui/views/index/_getting-started.haml
1058
1071
  - lib/pact_broker/ui/views/index/_navbar.haml
1072
+ - lib/pact_broker/ui/views/index/_pagination.haml
1059
1073
  - lib/pact_broker/ui/views/index/show-with-tags.haml
1060
1074
  - lib/pact_broker/ui/views/index/show.haml
1061
1075
  - lib/pact_broker/ui/views/layouts/main.haml
@@ -1155,6 +1169,7 @@ files:
1155
1169
  - public/javascripts/material-menu.js
1156
1170
  - public/javascripts/matrix.js
1157
1171
  - public/javascripts/pact.js
1172
+ - public/javascripts/pagination.js
1158
1173
  - public/js/bootstrap.js
1159
1174
  - public/js/bootstrap.min.js
1160
1175
  - public/js/npm.js
@@ -1249,6 +1264,7 @@ files:
1249
1264
  - spec/features/update_matrix_spec.rb
1250
1265
  - spec/features/update_pacticipant_spec.rb
1251
1266
  - spec/features/update_webhook_spec.rb
1267
+ - spec/features/wip_pacts_spec.rb
1252
1268
  - spec/fixtures/a_consumer-a_provider-2.json
1253
1269
  - spec/fixtures/a_consumer-a_provider-3.json
1254
1270
  - spec/fixtures/a_consumer-a_provider-conflict.json
@@ -1280,6 +1296,7 @@ files:
1280
1296
  - spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
1281
1297
  - spec/lib/pact/doc/markdown/index_renderer_spec.rb
1282
1298
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
1299
+ - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
1283
1300
  - spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
1284
1301
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
1285
1302
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
@@ -1423,6 +1440,7 @@ files:
1423
1440
  - spec/lib/pact_broker/ui/controllers/index_spec.rb
1424
1441
  - spec/lib/pact_broker/ui/view_models/index_item_spec.rb
1425
1442
  - spec/lib/pact_broker/ui/view_models/index_items_spec.rb
1443
+ - spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
1426
1444
  - spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
1427
1445
  - spec/lib/pact_broker/verifications/repository_spec.rb
1428
1446
  - spec/lib/pact_broker/verifications/sequence_spec.rb
@@ -1618,6 +1636,7 @@ test_files:
1618
1636
  - spec/features/update_matrix_spec.rb
1619
1637
  - spec/features/update_pacticipant_spec.rb
1620
1638
  - spec/features/update_webhook_spec.rb
1639
+ - spec/features/wip_pacts_spec.rb
1621
1640
  - spec/fixtures/a_consumer-a_provider-2.json
1622
1641
  - spec/fixtures/a_consumer-a_provider-3.json
1623
1642
  - spec/fixtures/a_consumer-a_provider-conflict.json
@@ -1649,6 +1668,7 @@ test_files:
1649
1668
  - spec/lib/pact/doc/markdown/consumer_contract_renderer_spec.rb
1650
1669
  - spec/lib/pact/doc/markdown/index_renderer_spec.rb
1651
1670
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
1671
+ - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
1652
1672
  - spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
1653
1673
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
1654
1674
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
@@ -1792,6 +1812,7 @@ test_files:
1792
1812
  - spec/lib/pact_broker/ui/controllers/index_spec.rb
1793
1813
  - spec/lib/pact_broker/ui/view_models/index_item_spec.rb
1794
1814
  - spec/lib/pact_broker/ui/view_models/index_items_spec.rb
1815
+ - spec/lib/pact_broker/ui/view_models/matrix_line_spec.rb
1795
1816
  - spec/lib/pact_broker/verifications/pseudo_branch_status_spec.rb
1796
1817
  - spec/lib/pact_broker/verifications/repository_spec.rb
1797
1818
  - spec/lib/pact_broker/verifications/sequence_spec.rb