pact_broker 2.118.0 → 2.120.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +49 -0
  3. data/Gemfile +2 -0
  4. data/README.md +1 -1
  5. data/db/migrations/000015_create_pact_version_content.rb +1 -1
  6. data/db/migrations/000023_create_pact_versions_table.rb +1 -1
  7. data/db/migrations/000033_create_config_table.rb +1 -1
  8. data/db/migrations/000036_create_webhook_execution.rb +1 -1
  9. data/db/migrations/20180108_create_certificates_table.rb +1 -1
  10. data/db/migrations/20251106_add_branch_versions_version_id_branch_name_index.rb +21 -0
  11. data/db/migrations/20260119_add_index_on_consumer_id_provider_id_to_pact_versions.rb +20 -0
  12. data/db/migrations/20260123_drop_branch_versions_branch_name_index.rb +17 -0
  13. data/db/migrations/20260210_add_index_on_pact_version_id_to_latest_pact_publication.rb +22 -0
  14. data/db/migrations/20260217_add_wip_query_optimization_indexes.rb +31 -0
  15. data/db/migrations/migration_helper.rb +5 -1
  16. data/lib/pact_broker/api/decorators/triggered_webhook_logs_decorator.rb +4 -0
  17. data/lib/pact_broker/api/decorators/version_decorator.rb +24 -4
  18. data/lib/pact_broker/api/resources/branch_versions.rb +5 -1
  19. data/lib/pact_broker/api/resources/can_i_deploy_pacticipant_version_by_branch_to_environment.rb +4 -1
  20. data/lib/pact_broker/api/resources/can_i_deploy_pacticipant_version_by_branch_to_environment_badge.rb +1 -0
  21. data/lib/pact_broker/api/resources/clean.rb +9 -1
  22. data/lib/pact_broker/api/resources/pacticipants_for_label.rb +29 -1
  23. data/lib/pact_broker/api/resources/provider_pacts_for_verification.rb +1 -1
  24. data/lib/pact_broker/api/resources/tag_versions.rb +5 -1
  25. data/lib/pact_broker/api/resources/version.rb +5 -1
  26. data/lib/pact_broker/api/resources/versions.rb +5 -1
  27. data/lib/pact_broker/configuration.rb +26 -0
  28. data/lib/pact_broker/db/clean/branch_selector.rb +40 -0
  29. data/lib/pact_broker/db/clean.rb +45 -0
  30. data/lib/pact_broker/db/clean_incremental.rb +77 -9
  31. data/lib/pact_broker/deployments/deployed_version_service.rb +1 -0
  32. data/lib/pact_broker/deployments/released_version_service.rb +14 -0
  33. data/lib/pact_broker/domain/pacticipant.rb +12 -1
  34. data/lib/pact_broker/logging.rb +10 -0
  35. data/lib/pact_broker/matrix/parse_can_i_deploy_query.rb +5 -0
  36. data/lib/pact_broker/pacticipants/repository.rb +1 -1
  37. data/lib/pact_broker/pacts/pact_publication_dataset_module.rb +5 -1
  38. data/lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb +13 -4
  39. data/lib/pact_broker/pacts/pacts_for_verification_repository.rb +90 -2
  40. data/lib/pact_broker/pacts/repository.rb +2 -2
  41. data/lib/pact_broker/pacts/service.rb +1 -1
  42. data/lib/pact_broker/tasks/clean_task.rb +23 -1
  43. data/lib/pact_broker/version.rb +1 -1
  44. data/lib/pact_broker/versions/branch_repository.rb +1 -1
  45. data/lib/pact_broker/versions/branch_service.rb +1 -1
  46. data/lib/pact_broker/versions/branch_version_repository.rb +2 -1
  47. data/lib/pact_broker/webhooks/event_listener.rb +1 -1
  48. data/lib/pact_broker/webhooks/execution_configuration.rb +4 -0
  49. data/lib/pact_broker/webhooks/redact_logs.rb +4 -4
  50. data/lib/sequel/plugins/upsert.rb +7 -0
  51. data/pact_broker.gemspec +6 -5
  52. metadata +30 -28
@@ -68,6 +68,7 @@ module Sequel
68
68
  end
69
69
 
70
70
  def manual_upsert(opts)
71
+ sync_deserialized_values_to_values
71
72
  # Can use slice when we drop support for Ruby 2.4
72
73
  query = values.select{ |k, _| self.class.upsert_plugin_identifying_columns.include?(k) }
73
74
  existing_record = model.where(query).single_record
@@ -79,6 +80,12 @@ module Sequel
79
80
  end
80
81
  end
81
82
 
83
+ def sync_deserialized_values_to_values
84
+ if respond_to?(:deserialized_values) && deserialized_values.is_a?(Hash)
85
+ deserialized_values.each { |k, v| values[k] = v }
86
+ end
87
+ end
88
+
82
89
  # naughty override of Sequel private method to
83
90
  # avoid having to rewrite the whole save method logic
84
91
  def _insert_dataset
data/pact_broker.gemspec CHANGED
@@ -49,17 +49,17 @@ Gem::Specification.new do |gem|
49
49
  gem.require_paths = ["lib"]
50
50
  gem.license = "MIT"
51
51
 
52
- gem.add_runtime_dependency "json", "~> 2.3"
52
+ gem.add_runtime_dependency "json", ">= 2.19.9"
53
53
  gem.add_runtime_dependency "psych", "~> 5.0"
54
54
  gem.add_runtime_dependency "roar", "~> 1.1"
55
55
  gem.add_runtime_dependency "dry-validation", "~> 1.8"
56
56
  gem.add_runtime_dependency "reform", "~> 2.6"
57
57
  gem.add_runtime_dependency "sequel", "~> 5.90"
58
- gem.add_runtime_dependency "webmachine", ">= 2.0.0.beta", "< 3.0"
58
+ gem.add_runtime_dependency "webmachine", "~> 2.0"
59
59
  gem.add_runtime_dependency "semver2", "~> 3.4.2"
60
60
  gem.add_runtime_dependency "rack", "~> 3.2"
61
- gem.add_runtime_dependency "redcarpet", ">= 3.5.1", "~>3.5"
62
- gem.add_runtime_dependency "pact-support" , ">= 1.21.2", "~> 1.21"
61
+ gem.add_runtime_dependency "redcarpet", "~> 3.5"
62
+ gem.add_runtime_dependency "pact-support", "~> 1.21"
63
63
  gem.add_runtime_dependency "haml", "~>5.0"
64
64
  gem.add_runtime_dependency "sucker_punch", "~>3.0"
65
65
  gem.add_runtime_dependency "rack-protection", "~> 4.1"
@@ -74,6 +74,7 @@ Gem::Specification.new do |gem|
74
74
  gem.add_runtime_dependency "mutex_m", "~> 0.3" # until as-notifications -> webmachine requires it
75
75
  gem.add_runtime_dependency "csv", "~> 3.0" # lib/pact_broker/api/decorators/relationships_csv_decorator.rb
76
76
  # dropped in ruby 3.5 stdlib
77
- gem.add_runtime_dependency "ostruct", "~> 0.5"
77
+ gem.add_runtime_dependency "ostruct", "~> 0.5"
78
+ gem.add_runtime_dependency "json_schemer", "~> 2.5"
78
79
  gem.add_development_dependency "pstore", "~> 0.1" # until webmachine requires it
79
80
  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.118.0
4
+ version: 2.120.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -15,16 +15,16 @@ dependencies:
15
15
  name: json
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '2.3'
20
+ version: 2.19.9
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '2.3'
27
+ version: 2.19.9
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: psych
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -99,22 +99,16 @@ dependencies:
99
99
  name: webmachine
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: 2.0.0.beta
105
- - - "<"
102
+ - - "~>"
106
103
  - !ruby/object:Gem::Version
107
- version: '3.0'
104
+ version: '2.0'
108
105
  type: :runtime
109
106
  prerelease: false
110
107
  version_requirements: !ruby/object:Gem::Requirement
111
108
  requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: 2.0.0.beta
115
- - - "<"
109
+ - - "~>"
116
110
  - !ruby/object:Gem::Version
117
- version: '3.0'
111
+ version: '2.0'
118
112
  - !ruby/object:Gem::Dependency
119
113
  name: semver2
120
114
  requirement: !ruby/object:Gem::Requirement
@@ -147,9 +141,6 @@ dependencies:
147
141
  name: redcarpet
148
142
  requirement: !ruby/object:Gem::Requirement
149
143
  requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: 3.5.1
153
144
  - - "~>"
154
145
  - !ruby/object:Gem::Version
155
146
  version: '3.5'
@@ -157,9 +148,6 @@ dependencies:
157
148
  prerelease: false
158
149
  version_requirements: !ruby/object:Gem::Requirement
159
150
  requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: 3.5.1
163
151
  - - "~>"
164
152
  - !ruby/object:Gem::Version
165
153
  version: '3.5'
@@ -167,9 +155,6 @@ dependencies:
167
155
  name: pact-support
168
156
  requirement: !ruby/object:Gem::Requirement
169
157
  requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: 1.21.2
173
158
  - - "~>"
174
159
  - !ruby/object:Gem::Version
175
160
  version: '1.21'
@@ -177,9 +162,6 @@ dependencies:
177
162
  prerelease: false
178
163
  version_requirements: !ruby/object:Gem::Requirement
179
164
  requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- version: 1.21.2
183
165
  - - "~>"
184
166
  - !ruby/object:Gem::Version
185
167
  version: '1.21'
@@ -365,6 +347,20 @@ dependencies:
365
347
  - - "~>"
366
348
  - !ruby/object:Gem::Version
367
349
  version: '0.5'
350
+ - !ruby/object:Gem::Dependency
351
+ name: json_schemer
352
+ requirement: !ruby/object:Gem::Requirement
353
+ requirements:
354
+ - - "~>"
355
+ - !ruby/object:Gem::Version
356
+ version: '2.5'
357
+ type: :runtime
358
+ prerelease: false
359
+ version_requirements: !ruby/object:Gem::Requirement
360
+ requirements:
361
+ - - "~>"
362
+ - !ruby/object:Gem::Version
363
+ version: '2.5'
368
364
  - !ruby/object:Gem::Dependency
369
365
  name: pstore
370
366
  requirement: !ruby/object:Gem::Requirement
@@ -579,8 +575,13 @@ files:
579
575
  - db/migrations/20231002_add_version_id_index_to_released_version.rb
580
576
  - db/migrations/20231003_add_version_id_index_to_deployed_version.rb
581
577
  - db/migrations/20240112_add_client_language_verified_by_to_verification.rb
578
+ - db/migrations/20251106_add_branch_versions_version_id_branch_name_index.rb
582
579
  - db/migrations/20251202_add_has_messages_column_to_pact_versions.rb
583
580
  - db/migrations/20251202_populate_has_messages_in_pact_versions.rb
581
+ - db/migrations/20260119_add_index_on_consumer_id_provider_id_to_pact_versions.rb
582
+ - db/migrations/20260123_drop_branch_versions_branch_name_index.rb
583
+ - db/migrations/20260210_add_index_on_pact_version_id_to_latest_pact_publication.rb
584
+ - db/migrations/20260217_add_wip_query_optimization_indexes.rb
584
585
  - db/migrations/migration_helper.rb
585
586
  - docs/CONFIGURATION.md
586
587
  - docs/api/PACTICIPANTS.md
@@ -831,6 +832,7 @@ files:
831
832
  - lib/pact_broker/db.rb
832
833
  - lib/pact_broker/db/advisory_lock.rb
833
834
  - lib/pact_broker/db/clean.rb
835
+ - lib/pact_broker/db/clean/branch_selector.rb
834
836
  - lib/pact_broker/db/clean/selector.rb
835
837
  - lib/pact_broker/db/clean_incremental.rb
836
838
  - lib/pact_broker/db/data_migrations/create_branches.rb
@@ -1290,7 +1292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1290
1292
  - !ruby/object:Gem::Version
1291
1293
  version: '0'
1292
1294
  requirements: []
1293
- rubygems_version: 4.0.3
1295
+ rubygems_version: 4.0.16
1294
1296
  specification_version: 4
1295
1297
  summary: See description
1296
1298
  test_files: []