pact_broker 2.83.0 → 2.84.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/Dockerfile +1 -1
  4. data/db/migrations/20210816_create_branches_tables.rb +40 -0
  5. data/db/migrations/20210831_add_index_to_pact_publications.rb +7 -0
  6. data/db/migrations/20210908_add_auto_created.rb +24 -0
  7. data/issue-reproduction/Dockerfile-pact-broker +1 -1
  8. data/lib/pact_broker/api/contracts/{verifiable_pacts_json_query_schema.rb → pacts_for_verification_json_query_schema.rb} +1 -1
  9. data/lib/pact_broker/api/contracts/{verifiable_pacts_query_schema.rb → pacts_for_verification_query_string_schema.rb} +1 -1
  10. data/lib/pact_broker/api/decorators/branch_version_decorator.rb +20 -0
  11. data/lib/pact_broker/api/decorators/dashboard_decorator.rb +4 -2
  12. data/lib/pact_broker/api/decorators/embedded_branch_version_decorator.rb +21 -0
  13. data/lib/pact_broker/api/decorators/embedded_tag_decorator.rb +0 -5
  14. data/lib/pact_broker/api/decorators/matrix_decorator.rb +11 -2
  15. data/lib/pact_broker/api/decorators/pacticipant_decorator.rb +8 -0
  16. data/lib/pact_broker/api/decorators/{verifiable_pacts_query_decorator.rb → pacts_for_verification_query_decorator.rb} +2 -2
  17. data/lib/pact_broker/api/decorators/version_decorator.rb +1 -1
  18. data/lib/pact_broker/api/pact_broker_urls.rb +8 -0
  19. data/lib/pact_broker/api/resources/branch_version.rb +48 -0
  20. data/lib/pact_broker/api/resources/index.rb +6 -0
  21. data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +6 -6
  22. data/lib/pact_broker/api/resources/version.rb +0 -8
  23. data/lib/pact_broker/api.rb +1 -0
  24. data/lib/pact_broker/config/runtime_configuration.rb +12 -0
  25. data/lib/pact_broker/contracts/service.rb +1 -1
  26. data/lib/pact_broker/db/data_migrations/create_branches.rb +97 -0
  27. data/lib/pact_broker/db/data_migrations/set_pacticipant_main_branch.rb +2 -0
  28. data/lib/pact_broker/db/migrate_data.rb +1 -1
  29. data/lib/pact_broker/db/models.rb +6 -0
  30. data/lib/pact_broker/deployments/deployed_version.rb +4 -0
  31. data/lib/pact_broker/deployments/deployed_version_service.rb +4 -3
  32. data/lib/pact_broker/deployments/environment.rb +4 -0
  33. data/lib/pact_broker/deployments/environment_service.rb +13 -8
  34. data/lib/pact_broker/doc/views/index/pacticipant-branch-version.markdown +14 -0
  35. data/lib/pact_broker/doc/views/webhooks.markdown +1 -0
  36. data/lib/pact_broker/domain/index_item.rb +15 -17
  37. data/lib/pact_broker/domain/pacticipant.rb +11 -0
  38. data/lib/pact_broker/domain/tag.rb +1 -2
  39. data/lib/pact_broker/domain/verification.rb +16 -13
  40. data/lib/pact_broker/domain/version.rb +87 -33
  41. data/lib/pact_broker/index/service.rb +8 -4
  42. data/lib/pact_broker/locale/en.yml +1 -0
  43. data/lib/pact_broker/matrix/quick_row.rb +6 -6
  44. data/lib/pact_broker/metrics/service.rb +7 -1
  45. data/lib/pact_broker/pacts/pact_publication.rb +22 -25
  46. data/lib/pact_broker/pacts/pact_publication_dataset_module.rb +74 -33
  47. data/lib/pact_broker/pacts/pact_publication_selector_dataset_module.rb +18 -13
  48. data/lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb +16 -4
  49. data/lib/pact_broker/pacts/pact_version.rb +11 -0
  50. data/lib/pact_broker/pacts/pacts_for_verification_repository.rb +3 -3
  51. data/lib/pact_broker/pacts/selected_pact.rb +2 -2
  52. data/lib/pact_broker/pacts/selector.rb +98 -33
  53. data/lib/pact_broker/repositories.rb +5 -0
  54. data/lib/pact_broker/services.rb +9 -0
  55. data/lib/pact_broker/test/http_test_data_builder.rb +32 -7
  56. data/lib/pact_broker/test/test_data_builder.rb +25 -24
  57. data/lib/pact_broker/ui/view_models/index_item.rb +11 -0
  58. data/lib/pact_broker/ui/view_models/matrix_branch.rb +39 -0
  59. data/lib/pact_broker/ui/view_models/matrix_line.rb +11 -16
  60. data/lib/pact_broker/ui/views/index/show-with-tags.haml +12 -11
  61. data/lib/pact_broker/ui/views/matrix/show.haml +8 -8
  62. data/lib/pact_broker/version.rb +1 -1
  63. data/lib/pact_broker/versions/branch.rb +29 -0
  64. data/lib/pact_broker/versions/branch_head.rb +45 -0
  65. data/lib/pact_broker/versions/branch_service.rb +24 -0
  66. data/lib/pact_broker/versions/branch_version.rb +64 -0
  67. data/lib/pact_broker/versions/branch_version_repository.rb +34 -0
  68. data/lib/pact_broker/versions/eager_loaders.rb +0 -42
  69. data/lib/pact_broker/versions/repository.rb +25 -12
  70. data/lib/pact_broker/versions/service.rb +3 -22
  71. data/lib/pact_broker/webhooks/pact_and_verification_parameters.rb +11 -2
  72. data/lib/sequel/plugins/insert_ignore.rb +4 -0
  73. data/lib/sequel/plugins/upsert.rb +4 -0
  74. data/public/javascripts/index.js +129 -34
  75. data/scaffolding/templates/decorator.rb.erb +3 -1
  76. data/scaffolding/templates/migration.erb +1 -1
  77. data/scaffolding/templates/model.erb +2 -2
  78. data/scaffolding/templates/repository.rb.erb +2 -2
  79. data/scaffolding/templates/repository_spec.rb.erb +1 -1
  80. data/scaffolding/templates/resource.erb +2 -2
  81. data/scaffolding/templates/resource_spec.rb.erb +1 -1
  82. data/scaffolding/templates/service.rb.erb +3 -3
  83. data/scaffolding/templates/service_spec.rb.erb +1 -1
  84. data/script/data/branches.rb +35 -0
  85. data/script/data/issue-494.rb +25 -0
  86. data/spec/features/create_branch_version_spec.rb +29 -0
  87. data/spec/features/create_tag_spec.rb +1 -1
  88. data/spec/features/create_version_spec.rb +2 -4
  89. data/spec/features/get_branch_version_spec.rb +12 -0
  90. data/spec/features/publish_pact_all_in_one_spec.rb +0 -1
  91. data/spec/features/update_version_spec.rb +0 -55
  92. data/spec/fixtures/approvals/modifiable_resources.approved.json +3 -0
  93. data/spec/fixtures/approvals/publish_contract_nothing_exists.approved.json +1 -2
  94. data/spec/fixtures/approvals/publish_contract_nothing_exists_with_webhook.approved.json +1 -2
  95. data/spec/fixtures/approvals/publish_contract_verification_already_exists.approved.json +1 -2
  96. data/spec/fixtures/dashboard.json +4 -2
  97. data/spec/integration/ui/index_spec.rb +0 -2
  98. data/spec/integration/ui/matrix_spec.rb +0 -1
  99. data/spec/lib/pact_broker/api/contracts/{verifiable_pacts_json_query_schema_combinations_spec.rb → pacts_for_verification_json_query_schema_combinations_spec.rb} +6 -6
  100. data/spec/lib/pact_broker/api/contracts/{verifiable_pacts_json_query_schema_spec.rb → pacts_for_verification_json_query_schema_spec.rb} +3 -3
  101. data/spec/lib/pact_broker/api/contracts/{verifiable_pacts_query_schema_spec.rb → pacts_for_verification_query_string_schema_spec.rb} +3 -3
  102. data/spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb +7 -7
  103. data/spec/lib/pact_broker/api/decorators/matrix_decorator_spec.rb +19 -4
  104. data/spec/lib/pact_broker/api/decorators/{verifiable_pacts_query_decorator_spec.rb → pacts_for_verification_query_decorator_spec.rb} +3 -3
  105. data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +7 -3
  106. data/spec/lib/pact_broker/contracts/service_spec.rb +24 -3
  107. data/spec/lib/pact_broker/db/data_migrations/create_branches_spec.rb +57 -0
  108. data/spec/lib/pact_broker/domain/index_item_spec.rb +1 -1
  109. data/spec/lib/pact_broker/domain/version_spec.rb +1 -35
  110. data/spec/lib/pact_broker/metrics/service_spec.rb +4 -1
  111. data/spec/lib/pact_broker/pacts/pact_publication_dataset_module_spec.rb +109 -10
  112. data/spec/lib/pact_broker/pacts/pact_publication_selector_dataset_module_spec.rb +3 -2
  113. data/spec/lib/pact_broker/pacts/pact_publication_spec.rb +5 -5
  114. data/spec/lib/pact_broker/pacts/repository_find_for_currently_deployed_spec.rb +2 -2
  115. data/spec/lib/pact_broker/pacts/repository_find_for_currently_supported_releases_spec.rb +2 -2
  116. data/spec/lib/pact_broker/pacts/selector_spec.rb +45 -3
  117. data/spec/lib/pact_broker/pacts/verifiable_pact_messages_spec.rb +5 -5
  118. data/spec/lib/pact_broker/relationships/groupify_spec.rb +0 -5
  119. data/spec/lib/pact_broker/ui/view_models/index_item_spec.rb +15 -3
  120. data/spec/lib/pact_broker/verifications/repository_spec.rb +1 -1
  121. data/spec/lib/pact_broker/versions/branch_service_spec.rb +71 -0
  122. data/spec/lib/pact_broker/versions/branch_version_repository_spec.rb +81 -0
  123. data/spec/lib/pact_broker/versions/branch_version_spec.rb +27 -0
  124. data/spec/lib/pact_broker/versions/repository_spec.rb +91 -6
  125. data/spec/lib/pact_broker/versions/service_spec.rb +4 -3
  126. data/spec/lib/pact_broker/webhooks/render_spec.rb +6 -0
  127. data/spec/lib/sequel/plugins/upsert_spec.rb +11 -5
  128. data/spec/migrations/44_add_provider_version_to_verification_spec.rb +6 -9
  129. metadata +42 -15
  130. data/lib/pact_broker/versions/lazy_loaders.rb +0 -13
@@ -37,7 +37,7 @@ module PactBroker
37
37
 
38
38
  it "does not update the branch" do
39
39
  subject
40
- expect(td.find_version(pacticipant_name, version_number).branch).to eq "foo"
40
+ expect(td.find_version(pacticipant_name, version_number).branch_names).to eq ["foo"]
41
41
  end
42
42
  end
43
43
 
@@ -77,7 +77,8 @@ module PactBroker
77
77
 
78
78
  context "when the version was created within the limit" do
79
79
  before do
80
- version = td.create_consumer(pacticipant_name)
80
+ version = td
81
+ .create_consumer(pacticipant_name)
81
82
  .create_consumer_version(version_number)
82
83
  .and_return(:consumer_version)
83
84
 
@@ -91,7 +92,7 @@ module PactBroker
91
92
 
92
93
  it "sets the branch" do
93
94
  subject
94
- expect(td.find_version(pacticipant_name, version_number).branch).to eq "prod"
95
+ expect(td.find_version(pacticipant_name, version_number).branch_names).to include "prod"
95
96
  end
96
97
  end
97
98
  end
@@ -124,6 +124,12 @@ module PactBroker
124
124
  ["${pactbroker.azureDevOpsVerificationStatus}", "pending", :pact_with_no_verification, :nil_verification],
125
125
  ["${pactbroker.azureDevOpsVerificationStatus}", "succeeded", :pact_with_successful_verification, :nil_verification],
126
126
  ["${pactbroker.azureDevOpsVerificationStatus}", "failed", :pact_with_failed_verification, :nil_verification],
127
+ ["${pactbroker.gitlabVerificationStatus}", "success", :pact, :verification],
128
+ ["${pactbroker.gitlabVerificationStatus}", "failed", :pact, :failed_verification],
129
+ ["${pactbroker.gitlabVerificationStatus}", "pending", :nil_pact, :nil_verification],
130
+ ["${pactbroker.gitlabVerificationStatus}", "pending", :pact_with_no_verification, :nil_verification],
131
+ ["${pactbroker.gitlabVerificationStatus}", "success", :pact_with_successful_verification, :nil_verification],
132
+ ["${pactbroker.gitlabVerificationStatus}", "failed", :pact_with_failed_verification, :nil_verification],
127
133
  ["${pactbroker.verificationResultUrl}", "", :pact_with_no_verification, :nil_verification],
128
134
  ["${pactbroker.verificationResultUrl}", "http://verification", :pact_with_successful_verification, :nil_verification],
129
135
  ["${pactbroker.verificationResultUrl}", "http://verification", :pact_with_successful_verification, :verification],
@@ -112,7 +112,6 @@ module Sequel
112
112
  version = Version.new(
113
113
  number: "1",
114
114
  pacticipant_id: pacticipant.id,
115
- branch: "original-branch",
116
115
  build_url: "original-url"
117
116
  ).upsert
118
117
  Version.where(id: version.id).update(created_at: yesterday, updated_at: yesterday)
@@ -121,7 +120,7 @@ module Sequel
121
120
  let(:yesterday) { DateTime.now - 2 }
122
121
 
123
122
  subject do
124
- Version.new(number: "1", pacticipant_id: pacticipant.id, branch: "new-branch").upsert
123
+ Version.new(number: "1", pacticipant_id: pacticipant.id, build_url: "new-url").upsert
125
124
  end
126
125
 
127
126
  it "does not raise an error" do
@@ -129,13 +128,20 @@ module Sequel
129
128
  end
130
129
 
131
130
  it "sets the values on the object" do
132
- expect(subject.branch).to eq "new-branch"
131
+ expect(subject.build_url).to eq "new-url"
133
132
  end
134
133
 
135
- it "nils out values that weren't set on the second model" do
136
- expect(subject.build_url).to eq nil
134
+ context "when an attribute is not set" do
135
+ subject do
136
+ Version.new(number: "1", pacticipant_id: pacticipant.id).upsert
137
+ end
138
+
139
+ it "nils out values that weren't set on the second model" do
140
+ expect(subject.build_url).to eq nil
141
+ end
137
142
  end
138
143
 
144
+
139
145
  it "does not insert another row" do
140
146
  expect { subject }.to_not change { Version.count }
141
147
  end
@@ -31,29 +31,26 @@ describe "add provider version relationship to verification (migrate 42-44)", mi
31
31
  subject { PactBroker::Database.migrate(46) }
32
32
 
33
33
  it "creates a version object" do
34
- expect { subject }.to change { PactBroker::Domain::Version.count }.by(1)
34
+ expect { subject }.to change { database[:versions].count }.by(1)
35
35
  end
36
36
 
37
37
  it "sets the foreign key to the new version" do
38
38
  subject
39
- expect(PactBroker::Domain::Verification.first.provider_version.number).to eq "1.2.3"
40
- end
41
-
42
- it "sets the created_at date of the new version to the created_at of the verification" do
43
- subject
44
- expect(PactBroker::Domain::Verification.first.provider_version.created_at.to_datetime).to eq now
39
+ provider_version_id = database[:verifications].order(:id).first[:provider_version_id]
40
+ expect(database[:versions].where(id: provider_version_id).single_record[:number]).to eq "1.2.3"
45
41
  end
46
42
 
47
43
  context "when the version already exists" do
48
44
  let!(:provider_version) { create(:versions, {number: "1.2.3", order: 1, pacticipant_id: provider[:id], created_at: now, updated_at: now}) }
49
45
 
50
46
  it "does not create a version object" do
51
- expect { subject }.to_not change { PactBroker::Domain::Version.count }
47
+ expect { subject }.to_not change { database[:versions].count }
52
48
  end
53
49
 
54
50
  it "sets the foreign key to the existing version" do
55
51
  subject
56
- expect(PactBroker::Domain::Verification.first.provider_version.number).to eq "1.2.3"
52
+ provider_version_id = database[:verifications].order(:id).first[:provider_version_id]
53
+ expect(database[:versions].where(id: provider_version_id).single_record[:number]).to eq "1.2.3"
57
54
  end
58
55
  end
59
56
  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.83.0
4
+ version: 2.84.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-08-29 00:00:00.000000000 Z
13
+ date: 2021-09-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -578,7 +578,10 @@ files:
578
578
  - db/migrations/20210722_add_index_to_triggered_webhooks_webhook_uuid.rb
579
579
  - db/migrations/20210810_set_allow_contract_modification.rb
580
580
  - db/migrations/20210815_add_provider_version_id_index_to_verifications.rb
581
+ - db/migrations/20210816_create_branches_tables.rb
581
582
  - db/migrations/20210818_add_consumer_version_selectors_to_verification.rb
583
+ - db/migrations/20210831_add_index_to_pact_publications.rb
584
+ - db/migrations/20210908_add_auto_created.rb
582
585
  - db/migrations/migration_helper.rb
583
586
  - db/test/backwards_compatibility/.rspec
584
587
  - db/test/backwards_compatibility/Appraisals
@@ -646,16 +649,17 @@ files:
646
649
  - lib/pact_broker/api/contracts/pacticipant_name_contract.rb
647
650
  - lib/pact_broker/api/contracts/pacticipant_name_validation.rb
648
651
  - lib/pact_broker/api/contracts/pacticipant_schema.rb
652
+ - lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema.rb
653
+ - lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema.rb
649
654
  - lib/pact_broker/api/contracts/publish_contracts_schema.rb
650
655
  - lib/pact_broker/api/contracts/put_pact_params_contract.rb
651
656
  - lib/pact_broker/api/contracts/request_validations.rb
652
- - lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema.rb
653
- - lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
654
657
  - lib/pact_broker/api/contracts/verification_contract.rb
655
658
  - lib/pact_broker/api/contracts/webhook_contract.rb
656
659
  - lib/pact_broker/api/decorators.rb
657
660
  - lib/pact_broker/api/decorators/base_decorator.rb
658
661
  - lib/pact_broker/api/decorators/basic_pacticipant_decorator.rb
662
+ - lib/pact_broker/api/decorators/branch_version_decorator.rb
659
663
  - lib/pact_broker/api/decorators/configuration.rb
660
664
  - lib/pact_broker/api/decorators/dashboard_decorator.rb
661
665
  - lib/pact_broker/api/decorators/dashboard_text_decorator.rb
@@ -663,6 +667,7 @@ files:
663
667
  - lib/pact_broker/api/decorators/decorator_context_creator.rb
664
668
  - lib/pact_broker/api/decorators/deployed_version_decorator.rb
665
669
  - lib/pact_broker/api/decorators/deployed_versions_decorator.rb
670
+ - lib/pact_broker/api/decorators/embedded_branch_version_decorator.rb
666
671
  - lib/pact_broker/api/decorators/embedded_label_decorator.rb
667
672
  - lib/pact_broker/api/decorators/embedded_pacticipant_decorator.rb
668
673
  - lib/pact_broker/api/decorators/embedded_tag_decorator.rb
@@ -687,6 +692,7 @@ files:
687
692
  - lib/pact_broker/api/decorators/pact_webhooks_status_decorator.rb
688
693
  - lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb
689
694
  - lib/pact_broker/api/decorators/pacticipant_decorator.rb
695
+ - lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb
690
696
  - lib/pact_broker/api/decorators/pagination_links.rb
691
697
  - lib/pact_broker/api/decorators/provider_pacts_decorator.rb
692
698
  - lib/pact_broker/api/decorators/publish_contract_decorator.rb
@@ -704,7 +710,6 @@ files:
704
710
  - lib/pact_broker/api/decorators/triggered_webhooks_decorator.rb
705
711
  - lib/pact_broker/api/decorators/verifiable_pact_decorator.rb
706
712
  - lib/pact_broker/api/decorators/verifiable_pacts_decorator.rb
707
- - lib/pact_broker/api/decorators/verifiable_pacts_query_decorator.rb
708
713
  - lib/pact_broker/api/decorators/verification_decorator.rb
709
714
  - lib/pact_broker/api/decorators/verification_summary_decorator.rb
710
715
  - lib/pact_broker/api/decorators/version_decorator.rb
@@ -724,6 +729,7 @@ files:
724
729
  - lib/pact_broker/api/resources/authorization.rb
725
730
  - lib/pact_broker/api/resources/badge.rb
726
731
  - lib/pact_broker/api/resources/base_resource.rb
732
+ - lib/pact_broker/api/resources/branch_version.rb
727
733
  - lib/pact_broker/api/resources/can_i_deploy.rb
728
734
  - lib/pact_broker/api/resources/can_i_deploy_badge.rb
729
735
  - lib/pact_broker/api/resources/can_i_deploy_pacticipant_version.rb
@@ -819,6 +825,7 @@ files:
819
825
  - lib/pact_broker/db/clean.rb
820
826
  - lib/pact_broker/db/clean/selector.rb
821
827
  - lib/pact_broker/db/clean_incremental.rb
828
+ - lib/pact_broker/db/data_migrations/create_branches.rb
822
829
  - lib/pact_broker/db/data_migrations/delete_deprecated_webhook_executions.rb
823
830
  - lib/pact_broker/db/data_migrations/helpers.rb
824
831
  - lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
@@ -868,6 +875,7 @@ files:
868
875
  - lib/pact_broker/doc/views/index/latest-provider-pacts.markdown
869
876
  - lib/pact_broker/doc/views/index/latest-tagged-version.markdown
870
877
  - lib/pact_broker/doc/views/index/latest-version.markdown
878
+ - lib/pact_broker/doc/views/index/pacticipant-branch-version.markdown
871
879
  - lib/pact_broker/doc/views/index/pacticipant-version-tag.markdown
872
880
  - lib/pact_broker/doc/views/index/pacticipant-version.markdown
873
881
  - lib/pact_broker/doc/views/index/pacticipants.markdown
@@ -1027,6 +1035,7 @@ files:
1027
1035
  - lib/pact_broker/ui/view_models/clusters.rb
1028
1036
  - lib/pact_broker/ui/view_models/index_item.rb
1029
1037
  - lib/pact_broker/ui/view_models/index_items.rb
1038
+ - lib/pact_broker/ui/view_models/matrix_branch.rb
1030
1039
  - lib/pact_broker/ui/view_models/matrix_deployed_version.rb
1031
1040
  - lib/pact_broker/ui/view_models/matrix_line.rb
1032
1041
  - lib/pact_broker/ui/view_models/matrix_lines.rb
@@ -1055,9 +1064,13 @@ files:
1055
1064
  - lib/pact_broker/verifications/summary_for_consumer_version.rb
1056
1065
  - lib/pact_broker/version.rb
1057
1066
  - lib/pact_broker/versions/abbreviate_number.rb
1067
+ - lib/pact_broker/versions/branch.rb
1068
+ - lib/pact_broker/versions/branch_head.rb
1069
+ - lib/pact_broker/versions/branch_service.rb
1070
+ - lib/pact_broker/versions/branch_version.rb
1071
+ - lib/pact_broker/versions/branch_version_repository.rb
1058
1072
  - lib/pact_broker/versions/eager_loaders.rb
1059
1073
  - lib/pact_broker/versions/latest_version.rb
1060
- - lib/pact_broker/versions/lazy_loaders.rb
1061
1074
  - lib/pact_broker/versions/parse_semantic_version.rb
1062
1075
  - lib/pact_broker/versions/repository.rb
1063
1076
  - lib/pact_broker/versions/sequence.rb
@@ -1194,9 +1207,11 @@ files:
1194
1207
  - scaffolding/templates/service.rb.erb
1195
1208
  - scaffolding/templates/service_spec.rb.erb
1196
1209
  - script/data/auto-create-things-for-tags.rb
1210
+ - script/data/branches.rb
1197
1211
  - script/data/contract-published-requiring-verification.rb
1198
1212
  - script/data/environments.rb
1199
1213
  - script/data/expand-currently-deployed.rb
1214
+ - script/data/issue-494.rb
1200
1215
  - script/db-spec.sh
1201
1216
  - script/demonstrate-version-branches.rb
1202
1217
  - script/dev/rubocop-modified-files.sh
@@ -1252,6 +1267,7 @@ files:
1252
1267
  - script/webhook-server.ru
1253
1268
  - spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb
1254
1269
  - spec/features/can_i_deploy_spec.rb
1270
+ - spec/features/create_branch_version_spec.rb
1255
1271
  - spec/features/create_environment_spec.rb
1256
1272
  - spec/features/create_pacticipant_spec.rb
1257
1273
  - spec/features/create_tag_spec.rb
@@ -1271,6 +1287,7 @@ files:
1271
1287
  - spec/features/end_support_spec.rb
1272
1288
  - spec/features/execute_unsaved_webhook_spec.rb
1273
1289
  - spec/features/execute_webhook_spec.rb
1290
+ - spec/features/get_branch_version_spec.rb
1274
1291
  - spec/features/get_can_i_deploy_badge_spec.rb
1275
1292
  - spec/features/get_currently_deployed_versions_for_environment_spec.rb
1276
1293
  - spec/features/get_currently_deployed_versions_for_version_spec.rb
@@ -1372,11 +1389,11 @@ files:
1372
1389
  - spec/lib/pact/doc/markdown/index_renderer_spec.rb
1373
1390
  - spec/lib/pact_broker/api/contracts/environment_schema_spec.rb
1374
1391
  - spec/lib/pact_broker/api/contracts/pacticipant_schema_spec.rb
1392
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_combinations_spec.rb
1393
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_spec.rb
1394
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema_spec.rb
1375
1395
  - spec/lib/pact_broker/api/contracts/publish_contracts_schema_spec.rb
1376
1396
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
1377
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_combinations_spec.rb
1378
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
1379
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
1380
1397
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
1381
1398
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
1382
1399
  - spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb
@@ -1395,6 +1412,7 @@ files:
1395
1412
  - spec/lib/pact_broker/api/decorators/pact_webhooks_status_decorator_spec.rb
1396
1413
  - spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb
1397
1414
  - spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb
1415
+ - spec/lib/pact_broker/api/decorators/pacts_for_verification_query_decorator_spec.rb
1398
1416
  - spec/lib/pact_broker/api/decorators/provider_pacts_decorator_spec.rb
1399
1417
  - spec/lib/pact_broker/api/decorators/publish_contracts_results_decorator_spec.rb
1400
1418
  - spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb
@@ -1406,7 +1424,6 @@ files:
1406
1424
  - spec/lib/pact_broker/api/decorators/triggered_webhooks_decorator_spec.rb
1407
1425
  - spec/lib/pact_broker/api/decorators/verifiable_pact_decorator_spec.rb
1408
1426
  - spec/lib/pact_broker/api/decorators/verifiable_pacts_decorator_spec.rb
1409
- - spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb
1410
1427
  - spec/lib/pact_broker/api/decorators/verification_decorator_spec.rb
1411
1428
  - spec/lib/pact_broker/api/decorators/verification_summary_decorator_spec.rb
1412
1429
  - spec/lib/pact_broker/api/decorators/version_decorator_spec.rb
@@ -1467,6 +1484,7 @@ files:
1467
1484
  - spec/lib/pact_broker/db/clean_incremental_spec.rb
1468
1485
  - spec/lib/pact_broker/db/clean_old_spec.rb
1469
1486
  - spec/lib/pact_broker/db/clean_spec.rb
1487
+ - spec/lib/pact_broker/db/data_migrations/create_branches_spec.rb
1470
1488
  - spec/lib/pact_broker/db/data_migrations/migrate_webhook_headers_spec.rb
1471
1489
  - spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
1472
1490
  - spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb
@@ -1571,6 +1589,9 @@ files:
1571
1589
  - spec/lib/pact_broker/verifications/service_spec.rb
1572
1590
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
1573
1591
  - spec/lib/pact_broker/versions/abbreviate_number_spec.rb
1592
+ - spec/lib/pact_broker/versions/branch_service_spec.rb
1593
+ - spec/lib/pact_broker/versions/branch_version_repository_spec.rb
1594
+ - spec/lib/pact_broker/versions/branch_version_spec.rb
1574
1595
  - spec/lib/pact_broker/versions/parse_semantic_version_spec.rb
1575
1596
  - spec/lib/pact_broker/versions/repository_spec.rb
1576
1597
  - spec/lib/pact_broker/versions/service_spec.rb
@@ -1714,13 +1735,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1714
1735
  - !ruby/object:Gem::Version
1715
1736
  version: '0'
1716
1737
  requirements: []
1717
- rubygems_version: 3.2.26
1738
+ rubygems_version: 3.2.27
1718
1739
  signing_key:
1719
1740
  specification_version: 4
1720
1741
  summary: See description
1721
1742
  test_files:
1722
1743
  - spec/features/base_equality_only_on_content_that_affects_verification_results_spec.rb
1723
1744
  - spec/features/can_i_deploy_spec.rb
1745
+ - spec/features/create_branch_version_spec.rb
1724
1746
  - spec/features/create_environment_spec.rb
1725
1747
  - spec/features/create_pacticipant_spec.rb
1726
1748
  - spec/features/create_tag_spec.rb
@@ -1740,6 +1762,7 @@ test_files:
1740
1762
  - spec/features/end_support_spec.rb
1741
1763
  - spec/features/execute_unsaved_webhook_spec.rb
1742
1764
  - spec/features/execute_webhook_spec.rb
1765
+ - spec/features/get_branch_version_spec.rb
1743
1766
  - spec/features/get_can_i_deploy_badge_spec.rb
1744
1767
  - spec/features/get_currently_deployed_versions_for_environment_spec.rb
1745
1768
  - spec/features/get_currently_deployed_versions_for_version_spec.rb
@@ -1841,11 +1864,11 @@ test_files:
1841
1864
  - spec/lib/pact/doc/markdown/index_renderer_spec.rb
1842
1865
  - spec/lib/pact_broker/api/contracts/environment_schema_spec.rb
1843
1866
  - spec/lib/pact_broker/api/contracts/pacticipant_schema_spec.rb
1867
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_combinations_spec.rb
1868
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_json_query_schema_spec.rb
1869
+ - spec/lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema_spec.rb
1844
1870
  - spec/lib/pact_broker/api/contracts/publish_contracts_schema_spec.rb
1845
1871
  - spec/lib/pact_broker/api/contracts/put_pact_params_contract_spec.rb
1846
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_combinations_spec.rb
1847
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_json_query_schema_spec.rb
1848
- - spec/lib/pact_broker/api/contracts/verifiable_pacts_query_schema_spec.rb
1849
1872
  - spec/lib/pact_broker/api/contracts/verification_contract_spec.rb
1850
1873
  - spec/lib/pact_broker/api/contracts/webhook_contract_spec.rb
1851
1874
  - spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb
@@ -1864,6 +1887,7 @@ test_files:
1864
1887
  - spec/lib/pact_broker/api/decorators/pact_webhooks_status_decorator_spec.rb
1865
1888
  - spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb
1866
1889
  - spec/lib/pact_broker/api/decorators/pacticipant_decorator_spec.rb
1890
+ - spec/lib/pact_broker/api/decorators/pacts_for_verification_query_decorator_spec.rb
1867
1891
  - spec/lib/pact_broker/api/decorators/provider_pacts_decorator_spec.rb
1868
1892
  - spec/lib/pact_broker/api/decorators/publish_contracts_results_decorator_spec.rb
1869
1893
  - spec/lib/pact_broker/api/decorators/reason_decorator_spec.rb
@@ -1875,7 +1899,6 @@ test_files:
1875
1899
  - spec/lib/pact_broker/api/decorators/triggered_webhooks_decorator_spec.rb
1876
1900
  - spec/lib/pact_broker/api/decorators/verifiable_pact_decorator_spec.rb
1877
1901
  - spec/lib/pact_broker/api/decorators/verifiable_pacts_decorator_spec.rb
1878
- - spec/lib/pact_broker/api/decorators/verifiable_pacts_query_decorator_spec.rb
1879
1902
  - spec/lib/pact_broker/api/decorators/verification_decorator_spec.rb
1880
1903
  - spec/lib/pact_broker/api/decorators/verification_summary_decorator_spec.rb
1881
1904
  - spec/lib/pact_broker/api/decorators/version_decorator_spec.rb
@@ -1936,6 +1959,7 @@ test_files:
1936
1959
  - spec/lib/pact_broker/db/clean_incremental_spec.rb
1937
1960
  - spec/lib/pact_broker/db/clean_old_spec.rb
1938
1961
  - spec/lib/pact_broker/db/clean_spec.rb
1962
+ - spec/lib/pact_broker/db/data_migrations/create_branches_spec.rb
1939
1963
  - spec/lib/pact_broker/db/data_migrations/migrate_webhook_headers_spec.rb
1940
1964
  - spec/lib/pact_broker/db/data_migrations/set_consumer_ids_for_pact_publications_spec.rb
1941
1965
  - spec/lib/pact_broker/db/data_migrations/set_interactions_counts_spec.rb
@@ -2040,6 +2064,9 @@ test_files:
2040
2064
  - spec/lib/pact_broker/verifications/service_spec.rb
2041
2065
  - spec/lib/pact_broker/verifications/summary_for_consumer_version_spec.rb
2042
2066
  - spec/lib/pact_broker/versions/abbreviate_number_spec.rb
2067
+ - spec/lib/pact_broker/versions/branch_service_spec.rb
2068
+ - spec/lib/pact_broker/versions/branch_version_repository_spec.rb
2069
+ - spec/lib/pact_broker/versions/branch_version_spec.rb
2043
2070
  - spec/lib/pact_broker/versions/parse_semantic_version_spec.rb
2044
2071
  - spec/lib/pact_broker/versions/repository_spec.rb
2045
2072
  - spec/lib/pact_broker/versions/service_spec.rb
@@ -1,13 +0,0 @@
1
- module PactBroker
2
- module Versions
3
- module LazyLoaders
4
- LATEST_VERSION_FOR_BRANCH = lambda {
5
- self.class
6
- .where(branch: branch, pacticipant_id: pacticipant_id)
7
- .exclude(branch: nil)
8
- .order(Sequel.desc(:order))
9
- .limit(1)
10
- }
11
- end
12
- end
13
- end