pact_broker 2.16.1 → 2.17.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +22 -0
  3. data/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  4. data/CHANGELOG.md +28 -0
  5. data/DEVELOPER_DOCUMENTATION.md +5 -0
  6. data/db/migrations/000046_recreate_latest_verifications.rb +2 -2
  7. data/db/migrations/20180311_optimise_head_matrix.rb +80 -0
  8. data/db/migrations/20180315_create_verification_sequence.rb +14 -0
  9. data/db/migrations/migration_helper.rb +1 -1
  10. data/lib/db.rb +3 -2
  11. data/lib/pact_broker/api/resources/base_resource.rb +10 -13
  12. data/lib/pact_broker/api/resources/error_handler.rb +30 -0
  13. data/lib/pact_broker/api/resources/pact.rb +6 -1
  14. data/lib/pact_broker/api/resources/pacticipant.rb +8 -2
  15. data/lib/pact_broker/api/resources/tag.rb +4 -2
  16. data/lib/pact_broker/api/resources/verifications.rb +5 -1
  17. data/lib/pact_broker/api/resources/version.rb +3 -1
  18. data/lib/pact_broker/api.rb +1 -1
  19. data/lib/pact_broker/config/load.rb +1 -0
  20. data/lib/pact_broker/configuration.rb +16 -0
  21. data/lib/pact_broker/matrix/head_row.rb +19 -0
  22. data/lib/pact_broker/matrix/repository.rb +39 -2
  23. data/lib/pact_broker/matrix/row.rb +16 -28
  24. data/lib/pact_broker/matrix/service.rb +6 -2
  25. data/lib/pact_broker/pacticipants/service.rb +1 -0
  26. data/lib/pact_broker/ui/controllers/base_controller.rb +2 -1
  27. data/lib/pact_broker/ui/controllers/error_test.rb +0 -1
  28. data/lib/pact_broker/ui/controllers/matrix.rb +3 -4
  29. data/lib/pact_broker/ui/view_models/matrix_line.rb +6 -0
  30. data/lib/pact_broker/ui/views/matrix/show.haml +14 -10
  31. data/lib/pact_broker/ui.rb +6 -6
  32. data/lib/pact_broker/verifications/repository.rb +9 -4
  33. data/lib/pact_broker/verifications/sequence.rb +34 -0
  34. data/lib/pact_broker/verifications/service.rb +2 -2
  35. data/lib/pact_broker/version.rb +1 -1
  36. data/lib/webmachine/convert_request_to_rack_env.rb +37 -0
  37. data/script/publish.sh +13 -2
  38. data/script/recreate-mysql-db.sh +2 -1
  39. data/script/seed-matrix.rb +1 -1
  40. data/spec/features/publish_verification_spec.rb +0 -1
  41. data/spec/features/update_matrix_spec.rb +146 -0
  42. data/spec/fixtures/foo-bar.json +22 -0
  43. data/spec/lib/pact_broker/api/resources/error_handler_spec.rb +55 -0
  44. data/spec/lib/pact_broker/api/resources/verifications_spec.rb +1 -1
  45. data/spec/lib/pact_broker/configuration_spec.rb +19 -1
  46. data/spec/lib/pact_broker/matrix/head_row_spec.rb +52 -0
  47. data/spec/lib/pact_broker/matrix/repository_spec.rb +20 -0
  48. data/spec/lib/pact_broker/matrix/row_spec.rb +10 -10
  49. data/spec/lib/pact_broker/pacticipants/service_spec.rb +1 -0
  50. data/spec/lib/pact_broker/verifications/repository_spec.rb +0 -29
  51. data/spec/lib/pact_broker/verifications/sequence_spec.rb +47 -0
  52. data/spec/lib/pact_broker/verifications/service_spec.rb +0 -13
  53. data/spec/lib/webmachine/convert_request_to_rack_env_spec.rb +68 -0
  54. data/spec/support/test_data_builder.rb +2 -0
  55. data/tasks/development.rake +10 -0
  56. metadata +22 -2
@@ -14,8 +14,8 @@ module PactBroker
14
14
  td.create_pact_with_hierarchy("Foo", "1", "Bar")
15
15
  end
16
16
 
17
- context "with only a consumer_name" do
18
- subject { Row.refresh(consumer_name: "Foo") }
17
+ context "with only a consumer_id" do
18
+ subject { Row.refresh(consumer_id: td.consumer.id) }
19
19
 
20
20
  it "refreshes the data for the consumer" do
21
21
  subject
@@ -23,8 +23,8 @@ module PactBroker
23
23
  end
24
24
  end
25
25
 
26
- context "with only a provider_name" do
27
- subject { Row.refresh(provider_name: "Bar") }
26
+ context "with only a provider_id" do
27
+ subject { Row.refresh(provider_id: td.provider.id) }
28
28
 
29
29
  it "refreshes the data for the provider" do
30
30
  subject
@@ -32,8 +32,8 @@ module PactBroker
32
32
  end
33
33
  end
34
34
 
35
- context "with both consumer_name and provider_name" do
36
- subject { Row.refresh(provider_name: "Bar", consumer_name: "Foo") }
35
+ context "with both consumer_id and provider_id" do
36
+ subject { Row.refresh(provider_id: td.provider.id, consumer_id: td.consumer.id) }
37
37
 
38
38
  it "refreshes the data for the consumer and provider" do
39
39
  subject
@@ -43,17 +43,17 @@ module PactBroker
43
43
 
44
44
  context "when there was existing data" do
45
45
  it "deletes the existing data before inserting the new data" do
46
- Row.refresh(provider_name: "Bar", consumer_name: "Foo")
46
+ Row.refresh(provider_id: td.provider.id, consumer_id: td.consumer.id)
47
47
  expect(Row.count).to eq 1
48
48
  td.create_consumer_version("2")
49
49
  .create_pact
50
- Row.refresh(provider_name: "Bar", consumer_name: "Foo")
50
+ Row.refresh(provider_id: td.provider.id, consumer_id: td.consumer.id)
51
51
  expect(Row.count).to eq 2
52
52
  end
53
53
  end
54
54
 
55
- context "with a pacticipant_name" do
56
- subject { Row.refresh(pacticipant_name: "Bar") }
55
+ context "with a pacticipant_id" do
56
+ subject { Row.refresh(pacticipant_id: td.provider.id) }
57
57
 
58
58
  it "refreshes the data for both consumer and provider roles" do
59
59
  subject
@@ -116,6 +116,7 @@ module PactBroker
116
116
  before do
117
117
  TestDataBuilder.new
118
118
  .create_consumer("Consumer")
119
+ .create_label("finance")
119
120
  .create_consumer_version("2.3.4")
120
121
  .create_provider("Provider")
121
122
  .create_pact
@@ -3,35 +3,6 @@ require 'pact_broker/verifications/repository'
3
3
  module PactBroker
4
4
  module Verifications
5
5
  describe Repository do
6
-
7
- describe "#verification_count_for_pact" do
8
- let!(:pact_1) do
9
- TestDataBuilder.new
10
- .create_consumer("Consumer")
11
- .create_provider("Provider")
12
- .create_consumer_version("1.2.3")
13
- .create_pact
14
- .create_verification(number: 1)
15
- .create_verification(number: 2)
16
- .and_return(:pact)
17
- end
18
- let!(:pact_2) do
19
- TestDataBuilder.new
20
- .create_consumer("Foo")
21
- .create_provider("Bar")
22
- .create_consumer_version("4.5.6")
23
- .create_pact
24
- .create_verification(number: 1)
25
- .and_return(:pact)
26
- end
27
-
28
- subject { Repository.new.verification_count_for_pact(pact_1) }
29
-
30
- it "returns the number of verifications for the given pact" do
31
- expect(subject).to eq 2
32
- end
33
- end
34
-
35
6
  describe "#find" do
36
7
  let!(:pact) do
37
8
  builder = TestDataBuilder.new
@@ -0,0 +1,47 @@
1
+ require 'pact_broker/verifications/sequence'
2
+
3
+ module PactBroker
4
+ module Verifications
5
+ describe Sequence do
6
+ describe "#next_val", migration: true do
7
+
8
+ before do
9
+ PactBroker::Database.migrate
10
+ end
11
+
12
+ context "when there is a row in the verification_sequence_number table" do
13
+ before do
14
+ Sequence.select_all.delete
15
+ Sequence.insert(value: 1)
16
+ end
17
+
18
+ it "increments the value and returns it" do
19
+ expect(Sequence.next_val).to eq 2
20
+ end
21
+ end
22
+
23
+ context "when there is no row in the verification_sequence_number table and no existing verifications" do
24
+ before do
25
+ Sequence.select_all.delete
26
+ end
27
+
28
+ it "inserts and returns the value 1" do
29
+ expect(Sequence.next_val).to eq 1
30
+ end
31
+ end
32
+
33
+ context "when there is no row in the verification_sequence_number table and there are existing verifications" do
34
+ before do
35
+ Sequence.select_all.delete
36
+ TestDataBuilder.new.create_pact_with_hierarchy("A", "1", "B")
37
+ .create_verification(provider_version: "2")
38
+ end
39
+
40
+ it "inserts a number that is guaranteed to be higher than any of the existing verification numbers from when we tried to do this without a sequence" do
41
+ expect(Sequence.next_val).to eq 101
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -8,19 +8,6 @@ module PactBroker
8
8
 
9
9
  subject { PactBroker::Verifications::Service }
10
10
 
11
- describe "#next_number_for" do
12
-
13
- let(:pact) { double(:pact) }
14
-
15
- before do
16
- allow_any_instance_of(PactBroker::Verifications::Repository).to receive(:verification_count_for_pact).and_return(2)
17
- end
18
-
19
- it "returns the number for the next build to be recorded for a pact" do
20
- expect(subject.next_number_for(pact)).to eq 3
21
- end
22
- end
23
-
24
11
  describe "#create" do
25
12
  let(:params) { {'success' => true, 'providerApplicationVersion' => '4.5.6'} }
26
13
  let(:pact) { TestDataBuilder.new.create_pact_with_hierarchy.and_return(:pact) }
@@ -0,0 +1,68 @@
1
+ require 'webmachine/convert_request_to_rack_env'
2
+ require 'webmachine/request'
3
+
4
+ module Webmachine
5
+ describe ConvertRequestToRackEnv do
6
+
7
+ let(:rack_env) do
8
+ {
9
+ "rack.input" => StringIO.new('foo'),
10
+ "REQUEST_METHOD" => "POST",
11
+ "SERVER_NAME" => "example.org",
12
+ "SERVER_PORT" => "80",
13
+ "QUERY_STRING" => "",
14
+ "PATH_INFO" => "/foo",
15
+ "rack.url_scheme" => "http",
16
+ "SCRIPT_NAME" => "",
17
+ "CONTENT_LENGTH" => "0",
18
+ "HTTP_HOST" => "example.org",
19
+ "CONTENT_TYPE" => "application/x-www-form-urlencoded",
20
+ "HTTP_AUTHORIZATION" => "auth",
21
+ "HTTP_TOKEN" => "foo"
22
+ }
23
+ end
24
+
25
+ let(:expected_rack_env) do
26
+ {
27
+ "REQUEST_METHOD" => "POST",
28
+ "SERVER_NAME" => "example.org",
29
+ "SERVER_PORT" => "80",
30
+ "QUERY_STRING" => "",
31
+ "PATH_INFO" => "/foo",
32
+ "rack.url_scheme" => "http",
33
+ "SCRIPT_NAME" => "",
34
+ "CONTENT_LENGTH" => "0",
35
+ "HTTP_HOST" => "example.org",
36
+ "CONTENT_TYPE" => "application/x-www-form-urlencoded",
37
+ "HTTP_AUTHORIZATION" => "[Filtered]",
38
+ "HTTP_TOKEN" => "[Filtered]"
39
+ }
40
+ end
41
+
42
+ let(:headers) do
43
+ Webmachine::Headers.from_cgi(rack_env)
44
+ end
45
+
46
+ let(:rack_req) { ::Rack::Request.new(rack_env) }
47
+ let(:webmachine_request) do
48
+ Webmachine::Request.new(rack_req.request_method,
49
+ rack_req.url,
50
+ headers,
51
+ Webmachine::Adapters::Rack::RequestBody.new(rack_req),
52
+ nil,
53
+ nil
54
+ )
55
+ end
56
+
57
+ subject { ConvertRequestToRackEnv.call(webmachine_request) }
58
+
59
+ describe ".call" do
60
+ it "returns a rack env hash created from the Webmachine::Request" do
61
+ actual_env = subject
62
+ actual_rack_input = actual_env.delete('rack.input')
63
+ expect(subject).to eq expected_rack_env
64
+ expect(actual_rack_input.string).to eq 'foo'
65
+ end
66
+ end
67
+ end
68
+ end
@@ -55,6 +55,7 @@ class TestDataBuilder
55
55
  params[:provider_name] = provider.name if provider
56
56
  matrix_service.refresh(params)
57
57
  # Row is not used in production code, but the tests depend on it
58
+ # Technically this code is expecting ids, but it will work with names too
58
59
  PactBroker::Matrix::Row.refresh(params)
59
60
  end
60
61
  end
@@ -197,6 +198,7 @@ class TestDataBuilder
197
198
  def create_consumer_version_tag tag_name, params = {}
198
199
  params.delete(:comment)
199
200
  @tag = PactBroker::Domain::Tag.create(name: tag_name, version: @consumer_version)
201
+ refresh_matrix
200
202
  self
201
203
  end
202
204
 
@@ -0,0 +1,10 @@
1
+
2
+ task 'pact_broker:dev:setup' do
3
+ FileUtils.cp_r 'example', 'dev'
4
+ gemfile_contents = File.read('dev/Gemfile')
5
+ new_gemfile_contents = gemfile_contents.gsub(/^.*gem.*pact_broker.*$/, "gem 'pact_broker', path: '../'")
6
+ 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}`
10
+ 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.16.1
4
+ version: 2.17.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: 2018-03-08 00:00:00.000000000 Z
13
+ date: 2018-03-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -520,6 +520,8 @@ files:
520
520
  - ".csslintrc"
521
521
  - ".eslintignore"
522
522
  - ".eslintrc.yml"
523
+ - ".github/ISSUE_TEMPLATE.md"
524
+ - ".github/PULL_REQUEST_TEMPLATE.md"
523
525
  - ".gitignore"
524
526
  - ".rspec"
525
527
  - ".rubocop.yml"
@@ -611,6 +613,8 @@ files:
611
613
  - db/migrations/20180208_add_cv_tag_name_index_to_mat_head_matrix.rb
612
614
  - db/migrations/20180209_recreate_latest_matrix_for_cv_and_pv_union_all.rb
613
615
  - db/migrations/20180210_fix_latest_matrix_for_cv_and_pv_again.rb
616
+ - db/migrations/20180311_optimise_head_matrix.rb
617
+ - db/migrations/20180315_create_verification_sequence.rb
614
618
  - db/migrations/migration_helper.rb
615
619
  - db/pact_broker_database.sqlite3
616
620
  - db/test/backwards_compatibility/.rspec
@@ -714,6 +718,7 @@ files:
714
718
  - lib/pact_broker/api/resources/badge.rb
715
719
  - lib/pact_broker/api/resources/base_resource.rb
716
720
  - lib/pact_broker/api/resources/dashboard.rb
721
+ - lib/pact_broker/api/resources/error_handler.rb
717
722
  - lib/pact_broker/api/resources/error_test.rb
718
723
  - lib/pact_broker/api/resources/group.rb
719
724
  - lib/pact_broker/api/resources/index.rb
@@ -861,6 +866,7 @@ files:
861
866
  - lib/pact_broker/verifications/all_verifications.rb
862
867
  - lib/pact_broker/verifications/latest_verifications_by_consumer_version.rb
863
868
  - lib/pact_broker/verifications/repository.rb
869
+ - lib/pact_broker/verifications/sequence.rb
864
870
  - lib/pact_broker/verifications/service.rb
865
871
  - lib/pact_broker/verifications/summary_for_consumer_version.rb
866
872
  - lib/pact_broker/verifications/verification_status.rb
@@ -890,6 +896,7 @@ files:
890
896
  - lib/rack/pact_broker/no_auth.rb
891
897
  - lib/rack/pact_broker/store_base_url.rb
892
898
  - lib/rack/pact_broker/ui_authentication.rb
899
+ - lib/webmachine/convert_request_to_rack_env.rb
893
900
  - pact_broker.gemspec
894
901
  - pact_broker_client-pact_broker.json
895
902
  - public/Network Graph_files/d3.v3.js
@@ -977,6 +984,7 @@ files:
977
984
  - spec/features/publish_pact_spec.rb
978
985
  - spec/features/publish_verification_spec.rb
979
986
  - spec/features/tag_version_spec.rb
987
+ - spec/features/update_matrix_spec.rb
980
988
  - spec/features/update_pacticipant_spec.rb
981
989
  - spec/fixtures/a_consumer-a_provider-2.json
982
990
  - spec/fixtures/a_consumer-a_provider-3.json
@@ -991,6 +999,7 @@ files:
991
999
  - spec/fixtures/certificates/self-signed.badssl.com.pem
992
1000
  - spec/fixtures/consumer-provider.json
993
1001
  - spec/fixtures/dashboard.json
1002
+ - spec/fixtures/foo-bar.json
994
1003
  - spec/fixtures/renderer_pact.json
995
1004
  - spec/fixtures/update_pacticipant.json
996
1005
  - spec/fixtures/updated_pacticipant.json
@@ -1035,6 +1044,7 @@ files:
1035
1044
  - spec/lib/pact_broker/api/resources/badge_spec.rb
1036
1045
  - spec/lib/pact_broker/api/resources/base_resource_spec.rb
1037
1046
  - spec/lib/pact_broker/api/resources/dashboard_spec.rb
1047
+ - spec/lib/pact_broker/api/resources/error_handler_spec.rb
1038
1048
  - spec/lib/pact_broker/api/resources/group_spec.rb
1039
1049
  - spec/lib/pact_broker/api/resources/latest_pact_spec.rb
1040
1050
  - spec/lib/pact_broker/api/resources/latest_verifications_for_consumer_version_spec.rb
@@ -1074,6 +1084,7 @@ files:
1074
1084
  - spec/lib/pact_broker/index/service_spec.rb
1075
1085
  - spec/lib/pact_broker/labels/repository_spec.rb
1076
1086
  - spec/lib/pact_broker/labels/service_spec.rb
1087
+ - spec/lib/pact_broker/matrix/head_row_spec.rb
1077
1088
  - spec/lib/pact_broker/matrix/parse_query_spec.rb
1078
1089
  - spec/lib/pact_broker/matrix/repository_spec.rb
1079
1090
  - spec/lib/pact_broker/matrix/row_spec.rb
@@ -1098,6 +1109,7 @@ files:
1098
1109
  - spec/lib/pact_broker/ui/view_models/index_item_spec.rb
1099
1110
  - spec/lib/pact_broker/ui/view_models/index_items_spec.rb
1100
1111
  - spec/lib/pact_broker/verifications/repository_spec.rb
1112
+ - spec/lib/pact_broker/verifications/sequence_spec.rb
1101
1113
  - spec/lib/pact_broker/verifications/service_spec.rb
1102
1114
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
1103
1115
  - spec/lib/pact_broker/verifications/verification_status_spec.rb
@@ -1115,6 +1127,7 @@ files:
1115
1127
  - spec/lib/rack/pact_broker/add_pact_broker_version_header_spec.rb
1116
1128
  - spec/lib/rack/pact_broker/database_transaction_spec.rb
1117
1129
  - spec/lib/rack/pact_broker/invalid_uri_protection_spec.rb
1130
+ - spec/lib/webmachine/convert_request_to_rack_env_spec.rb
1118
1131
  - spec/migrations/20180201_create_head_matrix_spec.rb
1119
1132
  - spec/migrations/23_pact_versions_spec.rb
1120
1133
  - spec/migrations/24_populate_pact_contents_spec.rb
@@ -1147,6 +1160,7 @@ files:
1147
1160
  - tasks/database.rb
1148
1161
  - tasks/database/table_dependency_calculator.rb
1149
1162
  - tasks/db.rake
1163
+ - tasks/development.rake
1150
1164
  - tasks/pact.rake
1151
1165
  - tasks/release.rake
1152
1166
  - tasks/rspec.rake
@@ -1247,6 +1261,7 @@ test_files:
1247
1261
  - spec/features/publish_pact_spec.rb
1248
1262
  - spec/features/publish_verification_spec.rb
1249
1263
  - spec/features/tag_version_spec.rb
1264
+ - spec/features/update_matrix_spec.rb
1250
1265
  - spec/features/update_pacticipant_spec.rb
1251
1266
  - spec/fixtures/a_consumer-a_provider-2.json
1252
1267
  - spec/fixtures/a_consumer-a_provider-3.json
@@ -1261,6 +1276,7 @@ test_files:
1261
1276
  - spec/fixtures/certificates/self-signed.badssl.com.pem
1262
1277
  - spec/fixtures/consumer-provider.json
1263
1278
  - spec/fixtures/dashboard.json
1279
+ - spec/fixtures/foo-bar.json
1264
1280
  - spec/fixtures/renderer_pact.json
1265
1281
  - spec/fixtures/update_pacticipant.json
1266
1282
  - spec/fixtures/updated_pacticipant.json
@@ -1305,6 +1321,7 @@ test_files:
1305
1321
  - spec/lib/pact_broker/api/resources/badge_spec.rb
1306
1322
  - spec/lib/pact_broker/api/resources/base_resource_spec.rb
1307
1323
  - spec/lib/pact_broker/api/resources/dashboard_spec.rb
1324
+ - spec/lib/pact_broker/api/resources/error_handler_spec.rb
1308
1325
  - spec/lib/pact_broker/api/resources/group_spec.rb
1309
1326
  - spec/lib/pact_broker/api/resources/latest_pact_spec.rb
1310
1327
  - spec/lib/pact_broker/api/resources/latest_verifications_for_consumer_version_spec.rb
@@ -1344,6 +1361,7 @@ test_files:
1344
1361
  - spec/lib/pact_broker/index/service_spec.rb
1345
1362
  - spec/lib/pact_broker/labels/repository_spec.rb
1346
1363
  - spec/lib/pact_broker/labels/service_spec.rb
1364
+ - spec/lib/pact_broker/matrix/head_row_spec.rb
1347
1365
  - spec/lib/pact_broker/matrix/parse_query_spec.rb
1348
1366
  - spec/lib/pact_broker/matrix/repository_spec.rb
1349
1367
  - spec/lib/pact_broker/matrix/row_spec.rb
@@ -1368,6 +1386,7 @@ test_files:
1368
1386
  - spec/lib/pact_broker/ui/view_models/index_item_spec.rb
1369
1387
  - spec/lib/pact_broker/ui/view_models/index_items_spec.rb
1370
1388
  - spec/lib/pact_broker/verifications/repository_spec.rb
1389
+ - spec/lib/pact_broker/verifications/sequence_spec.rb
1371
1390
  - spec/lib/pact_broker/verifications/service_spec.rb
1372
1391
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
1373
1392
  - spec/lib/pact_broker/verifications/verification_status_spec.rb
@@ -1385,6 +1404,7 @@ test_files:
1385
1404
  - spec/lib/rack/pact_broker/add_pact_broker_version_header_spec.rb
1386
1405
  - spec/lib/rack/pact_broker/database_transaction_spec.rb
1387
1406
  - spec/lib/rack/pact_broker/invalid_uri_protection_spec.rb
1407
+ - spec/lib/webmachine/convert_request_to_rack_env_spec.rb
1388
1408
  - spec/migrations/20180201_create_head_matrix_spec.rb
1389
1409
  - spec/migrations/23_pact_versions_spec.rb
1390
1410
  - spec/migrations/24_populate_pact_contents_spec.rb