pact_broker 2.112.0 → 2.113.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7da30c01ac5c3b656df24282a63fe7d18e42d83ed7ffdda14d3919481497f39
4
- data.tar.gz: 71c525bd8ac9ed56c8d15f3f2d6c274a32c925be65e75f889d351033d759c400
3
+ metadata.gz: 7f58c954e3864629cd056224198acfe87df68d7a38ff2a098bf1c7e78541a8d1
4
+ data.tar.gz: 6f59e94416775c9beb054cd7ef0ca77e055505e99864a8cc0c0dd4c8a0bf3f9b
5
5
  SHA512:
6
- metadata.gz: 95f5eed3bcda08ad27274d0bf858ea78319455ca45f783b0cd21a3709ee1ac3a1956325713466b8f1438cda86f83f51a35cccb875c81f864d2f53b054f7c0807
7
- data.tar.gz: e51971781ce0679309cd60a8bb0eb281b2fc9a01872db91a4cd6f3f00b575805e7b5244d2b0f4d68a699140799e8cf50fca9940ddd72c77b207ca749de468fda
6
+ metadata.gz: d64bab2b42d053d80a63c797e2a3ee84f2731a8eee85368a31bb1d70a102ef38df362feb7ef9151b2890307944123e0a0ec04acb82e1c7d956f88c12d6935116
7
+ data.tar.gz: 8c46ee348ffad72bad86d132873e1d812c70585b570d8e63c7b71187dfd653afa1eea795f804b8fb2d2ed3fe1f7d372996ff4eb598fcc17a775cd214be5cb236
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ <a name="v2.113.0"></a>
2
+ ### v2.113.0 (2025-02-13)
3
+
4
+ #### Features
5
+
6
+ * aggregated provider state endpoint (#734) ([108d11a7](/../../commit/108d11a7))
7
+ * add more logging to data migrations ([9482d44d](/../../commit/9482d44d))
8
+
9
+ #### Bug Fixes
10
+
11
+ * make sure last_action_date always returns a DateTime object ([d60c264e](/../../commit/d60c264e))
12
+
1
13
  <a name="v2.112.0"></a>
2
14
  ### v2.112.0 (2024-09-09)
3
15
 
data/Gemfile CHANGED
@@ -3,15 +3,17 @@ source "https://rubygems.org"
3
3
  gemspec
4
4
 
5
5
 
6
- gem "rake", "~>12.3.3"
6
+ gem "rake", "~>13.0"
7
7
  gem "sqlite3", ">=2.0.0"
8
8
  gem "conventional-changelog", "~>1.3"
9
9
  gem "bump", "~> 0.5"
10
+ gem "padrino-core", ">= 0.14.3", "~> 0.14", require: false
11
+ gem "sinatra", "~> 3.0", require: false
10
12
 
11
13
  group :development do
12
14
  gem "pry-byebug"
13
- gem "rubocop", "~>1.1"
14
- gem "rubocop-performance", "~> 1.11"
15
+ gem "rubocop", "~>1.7"
16
+ gem "rubocop-performance", "~> 1.23"
15
17
  gem "sequel-annotate", "~>1.3"
16
18
  gem "yard", "~> 0.9"
17
19
  end
@@ -21,7 +23,6 @@ group :test do
21
23
  gem "pact", "~>1.14"
22
24
  gem "rspec-pact-matchers", "~>0.1"
23
25
  gem "bundler-audit", "~>0.4"
24
- gem "fakefs", "~>0.4"
25
26
  gem "webmock", "~>3.9"
26
27
  gem "rspec", "~>3.0"
27
28
  gem "rspec-its", "~>1.2"
@@ -0,0 +1,9 @@
1
+ # Business Domain Models
2
+
3
+ Sorry this is so scarce. I'm in a hurry, and this is better than nothing.
4
+
5
+ ![Pact Publication](./images/domain-model-of-pact-publication.png)
6
+
7
+ ![Pact Publication with verification](./images/domain-model-of-pact-publication-with-verification.png)
8
+
9
+ ![Technically more correct but harder to understand diagram](./images/domain-model-of-pact-publication-with-verification-technically-more-correct-but-harder-to-understand.png)
@@ -0,0 +1,19 @@
1
+ require "pact_broker/api/decorators/base_decorator"
2
+
3
+ module PactBroker
4
+ module Api
5
+ module Decorators
6
+ class ProviderStateDecorator < BaseDecorator
7
+ camelize_property_names
8
+
9
+ property :name
10
+ property :params
11
+
12
+ end
13
+
14
+ class ProviderStatesDecorator < BaseDecorator
15
+ collection :providerStates, getter: -> (context) { context[:represented].sort_by(&:name) }, :extend => PactBroker::Api::Decorators::ProviderStateDecorator
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,38 @@
1
+ require "pact_broker/api/resources/base_resource"
2
+ require "pact_broker/api/decorators/provider_states_decorator"
3
+
4
+ module PactBroker
5
+ module Api
6
+ module Resources
7
+ class ProviderStates < BaseResource
8
+ def content_types_provided
9
+ [["application/hal+json", :to_json]]
10
+ end
11
+
12
+ def allowed_methods
13
+ ["GET", "OPTIONS"]
14
+ end
15
+
16
+ def resource_exists?
17
+ !!provider
18
+ end
19
+
20
+ def to_json
21
+ decorator_class(:provider_states_decorator).new(provider_states).to_json(decorator_options)
22
+ end
23
+
24
+ def policy_name
25
+ :'pacts::pacts'
26
+ end
27
+
28
+ private
29
+
30
+ # attr_reader :provider_states
31
+
32
+ def provider_states
33
+ @provider_states ||= provider_state_service.list_provider_states(provider)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -44,6 +44,11 @@ module PactBroker
44
44
  add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "version", :consumer_version_number, "diff", "version", :comparison_consumer_version], Api::Resources::PactContentDiff, {resource_name: "pact_version_diff_by_consumer_version"}
45
45
  add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "diff", "pact-version", :comparison_pact_version_sha], Api::Resources::PactContentDiff, {resource_name: "pact_version_diff_by_pact_version_sha"}
46
46
 
47
+ # Provider states
48
+
49
+ add ["pacts", "provider", :provider_name, "provider-states"], Api::Resources::ProviderStates, { resource_name: "provider_states" }
50
+
51
+
47
52
  # Verifications
48
53
  add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "verification-results"], Api::Resources::Verifications, {resource_name: "verification_results"}
49
54
  add ["pacts", "provider", :provider_name, "consumer", :consumer_name, "pact-version", :pact_version_sha, "metadata", :metadata, "verification-results"], Api::Resources::Verifications, {resource_name: "verification_results"}
@@ -4,6 +4,8 @@ module PactBroker
4
4
  module DB
5
5
  module DataMigrations
6
6
  class SetInteractionsCounts
7
+ # This was never included in PactBroker::DB::MigrateData::MIGRATIONS
8
+
7
9
  def self.call(connection)
8
10
  self_join = {
9
11
  Sequel[:pact_publications][:consumer_id] => Sequel[:pp2][:consumer_id],
@@ -13,23 +13,35 @@ end
13
13
  module PactBroker
14
14
  module DB
15
15
  class MigrateData
16
+ include PactBroker::Logging
17
+
18
+ MIGRATIONS = [
19
+ DataMigrations::SetPacticipantIdsForVerifications,
20
+ DataMigrations::SetConsumerIdsForPactPublications,
21
+ DataMigrations::SetLatestVersionSequenceValue,
22
+ DataMigrations::SetWebhooksEnabled,
23
+ DataMigrations::DeleteDeprecatedWebhookExecutions,
24
+ DataMigrations::SetCreatedAtForLatestPactPublications,
25
+ DataMigrations::SetCreatedAtForLatestVerifications,
26
+ DataMigrations::SetExtraColumnsForTags,
27
+ DataMigrations::SetPacticipantDisplayName,
28
+ DataMigrations::SetWebhookUuid,
29
+ DataMigrations::SetConsumerVersionOrderForPactPublications,
30
+ DataMigrations::CreateBranches,
31
+ DataMigrations::MigrateIntegrations,
32
+ DataMigrations::MigratePactVersionProviderTagSuccessfulVerifications,
33
+ DataMigrations::SetContractDataUpdatedAtForIntegrations
34
+ ].freeze
35
+
36
+ def self.registered_migrations
37
+ MIGRATIONS
38
+ end
39
+
16
40
  def self.call database_connection, _options = {}
17
- DataMigrations::SetPacticipantIdsForVerifications.call(database_connection)
18
- DataMigrations::SetConsumerIdsForPactPublications.call(database_connection)
19
- DataMigrations::SetLatestVersionSequenceValue.call(database_connection)
20
- DataMigrations::SetWebhooksEnabled.call(database_connection)
21
- DataMigrations::DeleteDeprecatedWebhookExecutions.call(database_connection)
22
- DataMigrations::SetCreatedAtForLatestPactPublications.call(database_connection)
23
- DataMigrations::SetCreatedAtForLatestVerifications.call(database_connection)
24
- DataMigrations::SetExtraColumnsForTags.call(database_connection)
25
- DataMigrations::SetPacticipantDisplayName.call(database_connection)
26
- DataMigrations::SetWebhookUuid.call(database_connection)
27
- DataMigrations::SetConsumerVersionOrderForPactPublications.call(database_connection)
28
- DataMigrations::SetExtraColumnsForTags.call(database_connection)
29
- DataMigrations::CreateBranches.call(database_connection)
30
- DataMigrations::MigrateIntegrations.call(database_connection)
31
- DataMigrations::MigratePactVersionProviderTagSuccessfulVerifications.call(database_connection)
32
- DataMigrations::SetContractDataUpdatedAtForIntegrations.call(database_connection)
41
+ registered_migrations.each do | migration |
42
+ logger.debug "Running data migration #{migration.to_s.split("::").last.gsub(/([a-z\d])([A-Z])/, '\1 \2').split.join("-")}"
43
+ migration.call(database_connection)
44
+ end
33
45
  end
34
46
  end
35
47
  end
@@ -0,0 +1,28 @@
1
+ # Provider States - Aggregated view by provider
2
+
3
+ Allowed methods: `GET`
4
+
5
+ Path: `/pacts/provider/{provider}/provider-states`
6
+
7
+ This resource returns a aggregated de-duplicated list of all provider states for a given provider.
8
+
9
+ Provider states are collected from the latest pact on the main branch for any dependant consumers.
10
+
11
+ Example response
12
+
13
+ ```json
14
+ {
15
+ "providerStates": [
16
+ {
17
+ "name": "an error occurs retrieving an alligator"
18
+ },
19
+ {
20
+ "name": "there is an alligator named Mary"
21
+ },
22
+ {
23
+ "name": "there is not an alligator named Mary"
24
+ }
25
+ ]
26
+ }
27
+ ```
28
+
@@ -129,7 +129,13 @@ module PactBroker
129
129
  end
130
130
 
131
131
  def last_action_date
132
- return_or_raise_if_not_set(:last_action_date)
132
+ date = return_or_raise_if_not_set(:last_action_date)
133
+
134
+ if date.class == String
135
+ DateTime.parse(date)
136
+ else
137
+ date
138
+ end
133
139
  end
134
140
 
135
141
  def has_verification?
@@ -37,7 +37,10 @@ module PactBroker
37
37
  end
38
38
 
39
39
  def find(options = {}, pagination_options = {}, eager_load_associations = [])
40
- query = scope_for(PactBroker::Domain::Pacticipant).select_all_qualified
40
+ query = scope_for(PactBroker::Domain::Pacticipant)
41
+ return [] if query.empty?
42
+
43
+ query = query.select_all_qualified
41
44
  query = query.filter(:name, options[:query_string]) if options[:query_string]
42
45
  query = query.label(options[:label_name]) if options[:label_name]
43
46
  query.order_ignore_case(Sequel[:pacticipants][:name]).eager(*eager_load_associations).all_with_pagination_options(pagination_options)
@@ -5,7 +5,10 @@ require "pact_broker/hash_refinements"
5
5
 
6
6
  module PactBroker
7
7
  module Pacts
8
+ ProviderState = Struct.new(:name, :params)
8
9
  class Content
10
+
11
+
9
12
  include GenerateInteractionSha
10
13
  using PactBroker::HashRefinements
11
14
 
@@ -33,9 +36,21 @@ module PactBroker
33
36
  Content.from_hash(SortContent.call(pact_hash))
34
37
  end
35
38
 
39
+ def provider_states
40
+ messages_and_or_interactions_or_empty_array.flat_map do | interaction |
41
+ if interaction["providerState"].is_a?(String)
42
+ [ProviderState.new(interaction["providerState"])]
43
+ elsif interaction["providerStates"].is_a?(Array)
44
+ interaction["providerStates"].collect do | provider_state |
45
+ ProviderState.new(provider_state["name"], provider_state["params"])
46
+ end
47
+ end
48
+ end.compact
49
+ end
50
+
36
51
  def interactions_missing_test_results
37
- return [] unless messages_or_interactions
38
- messages_or_interactions.reject do | interaction |
52
+ return [] unless messages_and_or_interactions
53
+ messages_and_or_interactions.reject do | interaction |
39
54
  interaction["tests"]&.any?
40
55
  end
41
56
  end
@@ -90,7 +105,7 @@ module PactBroker
90
105
  end
91
106
 
92
107
  def interaction_ids
93
- messages_or_interaction_or_empty_array.collect do | interaction |
108
+ messages_and_or_interactions_or_empty_array.collect do | interaction |
94
109
  interaction["_id"]
95
110
  end.compact
96
111
  end
@@ -116,12 +131,14 @@ module PactBroker
116
131
  pact_hash.is_a?(Hash) && pact_hash["interactions"].is_a?(Array) ? pact_hash["interactions"] : nil
117
132
  end
118
133
 
119
- def messages_or_interactions
120
- messages || interactions
134
+ def messages_and_or_interactions
135
+ if messages || interactions
136
+ (messages || []) + (interactions || [])
137
+ end
121
138
  end
122
139
 
123
- def messages_or_interaction_or_empty_array
124
- messages_or_interactions || []
140
+ def messages_and_or_interactions_or_empty_array
141
+ messages_and_or_interactions || []
125
142
  end
126
143
 
127
144
  def pact_specification_version
@@ -0,0 +1,22 @@
1
+ require "pact_broker/services"
2
+ require "pact_broker/pacts/selectors"
3
+ require "pact_broker/pacts/pact_publication"
4
+ require "pact_broker/repositories"
5
+
6
+
7
+ module PactBroker
8
+ module Pacts
9
+ class ProviderStateService
10
+ # extend self
11
+ extend PactBroker::Services
12
+ extend PactBroker::Repositories::Scopes
13
+
14
+ def self.list_provider_states(provider)
15
+ query = scope_for(PactPublication).eager_for_domain_with_content.for_provider_and_consumer_version_selector(provider, PactBroker::Pacts::Selector.latest_for_main_branch)
16
+ query.all.flat_map do | pact_publication |
17
+ pact_publication.to_domain.content_object.provider_states
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -155,6 +155,10 @@ module PactBroker
155
155
  new(latest: true, branch: branch)
156
156
  end
157
157
 
158
+ def self.latest_for_main_branch
159
+ new(latest: true, main_branch: true)
160
+ end
161
+
158
162
  def self.latest_for_tag_with_fallback(tag, fallback_tag)
159
163
  new(latest: true, tag: tag, fallback_tag: fallback_tag)
160
164
  end
@@ -27,6 +27,10 @@ module PactBroker
27
27
  Selectors.new([Selector.latest_for_branch(branch)])
28
28
  end
29
29
 
30
+ def self.create_for_latest_from_main_branch
31
+ Selectors.new([Selector.latest_for_main_branch])
32
+ end
33
+
30
34
  def self.create_for_overall_latest
31
35
  Selectors.new([Selector.overall_latest])
32
36
  end
@@ -93,6 +93,10 @@ module PactBroker
93
93
  get_service(:branch_service)
94
94
  end
95
95
 
96
+ def provider_state_service
97
+ get_service(:provider_state_service)
98
+ end
99
+
96
100
  # rubocop: disable Metrics/MethodLength
97
101
  def register_default_services
98
102
  register_service(:index_service) do
@@ -194,6 +198,11 @@ module PactBroker
194
198
  require "pact_broker/versions/branch_service"
195
199
  PactBroker::Versions::BranchService
196
200
  end
201
+
202
+ register_service(:provider_state_service) do
203
+ require "pact_broker/pacts/provider_state_service"
204
+ PactBroker::Pacts::ProviderStateService
205
+ end
197
206
  end
198
207
  # rubocop: enable Metrics/MethodLength
199
208
  end
@@ -1,3 +1,3 @@
1
1
  module PactBroker
2
- VERSION = "2.112.0"
2
+ VERSION = "2.113.0"
3
3
  end
@@ -3,6 +3,7 @@
3
3
  # locks to be registered because different threads running the same code
4
4
  # should not cause a Sequel::Error to be raised.
5
5
  # Also, I wanted it to use Concurrent::Hash for multi-threaded environments.
6
+ # Made minor change in begin ensure block in with_advisory_lock method.
6
7
 
7
8
  require "sequel"
8
9
  require "zlib"
@@ -57,10 +58,9 @@ module Sequel
57
58
  synchronize do
58
59
  if get(Sequel.function(lock_function, *function_params))
59
60
  begin
60
- result = yield
61
+ yield
61
62
  ensure
62
63
  get(Sequel.function(UNLOCK_FUNCTION, *function_params))
63
- result
64
64
  end
65
65
  end
66
66
  end
data/pact_broker.gemspec CHANGED
@@ -60,9 +60,7 @@ Gem::Specification.new do |gem|
60
60
  gem.add_runtime_dependency "semver2", "~> 3.4.2"
61
61
  gem.add_runtime_dependency "rack", ">= 2.2.3", "~> 2.2" # TODO update to 3
62
62
  gem.add_runtime_dependency "redcarpet", ">= 3.5.1", "~>3.5"
63
- gem.add_runtime_dependency "pact-support" , "~> 1.16", ">= 1.16.4"
64
- gem.add_runtime_dependency "padrino-core", ">= 0.14.3", "~> 0.14"
65
- gem.add_runtime_dependency "sinatra", "~> 3.0"
63
+ gem.add_runtime_dependency "pact-support" , ">= 1.21.2", "~> 1.21"
66
64
  gem.add_runtime_dependency "haml", "~>5.0"
67
65
  gem.add_runtime_dependency "sucker_punch", "~>3.0"
68
66
  gem.add_runtime_dependency "rack-protection", "~> 3.0"
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.112.0
4
+ version: 2.113.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
8
8
  - Sergei Matheson
9
9
  - Warner Godfrey
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2024-09-17 00:00:00.000000000 Z
12
+ date: 2025-02-13 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: json
@@ -186,58 +185,24 @@ dependencies:
186
185
  version: '3.5'
187
186
  - !ruby/object:Gem::Dependency
188
187
  name: pact-support
189
- requirement: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - "~>"
192
- - !ruby/object:Gem::Version
193
- version: '1.16'
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: 1.16.4
197
- type: :runtime
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - "~>"
202
- - !ruby/object:Gem::Version
203
- version: '1.16'
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: 1.16.4
207
- - !ruby/object:Gem::Dependency
208
- name: padrino-core
209
188
  requirement: !ruby/object:Gem::Requirement
210
189
  requirements:
211
190
  - - ">="
212
191
  - !ruby/object:Gem::Version
213
- version: 0.14.3
192
+ version: 1.21.2
214
193
  - - "~>"
215
194
  - !ruby/object:Gem::Version
216
- version: '0.14'
195
+ version: '1.21'
217
196
  type: :runtime
218
197
  prerelease: false
219
198
  version_requirements: !ruby/object:Gem::Requirement
220
199
  requirements:
221
200
  - - ">="
222
201
  - !ruby/object:Gem::Version
223
- version: 0.14.3
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '0.14'
227
- - !ruby/object:Gem::Dependency
228
- name: sinatra
229
- requirement: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - "~>"
232
- - !ruby/object:Gem::Version
233
- version: '3.0'
234
- type: :runtime
235
- prerelease: false
236
- version_requirements: !ruby/object:Gem::Requirement
237
- requirements:
202
+ version: 1.21.2
238
203
  - - "~>"
239
204
  - !ruby/object:Gem::Version
240
- version: '3.0'
205
+ version: '1.21'
241
206
  - !ruby/object:Gem::Dependency
242
207
  name: haml
243
208
  requirement: !ruby/object:Gem::Requirement
@@ -582,6 +547,7 @@ files:
582
547
  - docs/api/PACTICIPANTS.md
583
548
  - docs/api/PAGINATION.md
584
549
  - docs/api/WEBHOOKS.md
550
+ - docs/developer/business_domain_models.md
585
551
  - docs/developer/design_pattern_for_eager_loading_collections.md
586
552
  - docs/developer/matrix.md
587
553
  - docs/developer/rack.md
@@ -672,6 +638,7 @@ files:
672
638
  - lib/pact_broker/api/decorators/pacts_for_verification_query_decorator.rb
673
639
  - lib/pact_broker/api/decorators/pagination_links.rb
674
640
  - lib/pact_broker/api/decorators/provider_pacts_decorator.rb
641
+ - lib/pact_broker/api/decorators/provider_states_decorator.rb
675
642
  - lib/pact_broker/api/decorators/publish_contract_decorator.rb
676
643
  - lib/pact_broker/api/decorators/publish_contracts_decorator.rb
677
644
  - lib/pact_broker/api/decorators/publish_contracts_results_decorator.rb
@@ -774,6 +741,7 @@ files:
774
741
  - lib/pact_broker/api/resources/previous_distinct_pact_version.rb
775
742
  - lib/pact_broker/api/resources/provider_pacts.rb
776
743
  - lib/pact_broker/api/resources/provider_pacts_for_verification.rb
744
+ - lib/pact_broker/api/resources/provider_states.rb
777
745
  - lib/pact_broker/api/resources/publish_contracts.rb
778
746
  - lib/pact_broker/api/resources/relationships.rb
779
747
  - lib/pact_broker/api/resources/released_version.rb
@@ -899,6 +867,7 @@ files:
899
867
  - lib/pact_broker/doc/views/pact/latest-pact-version.markdown
900
868
  - lib/pact_broker/doc/views/pact/matrix-for-consumer-version.markdown
901
869
  - lib/pact_broker/doc/views/pact/pact-webhooks.markdown
870
+ - lib/pact_broker/doc/views/pact/provider-states.markdown
902
871
  - lib/pact_broker/doc/views/pact/publish-verification-results.markdown
903
872
  - lib/pact_broker/doc/views/pact/tag-prod-version.markdown
904
873
  - lib/pact_broker/doc/views/pact/tag-version.markdown
@@ -1000,6 +969,7 @@ files:
1000
969
  - lib/pact_broker/pacts/pacts_for_verification_repository.rb
1001
970
  - lib/pact_broker/pacts/parse.rb
1002
971
  - lib/pact_broker/pacts/placeholder_pact.rb
972
+ - lib/pact_broker/pacts/provider_state_service.rb
1003
973
  - lib/pact_broker/pacts/repository.rb
1004
974
  - lib/pact_broker/pacts/selected_pact.rb
1005
975
  - lib/pact_broker/pacts/selector.rb
@@ -1254,7 +1224,6 @@ homepage: https://github.com/pact-foundation/pact_broker
1254
1224
  licenses:
1255
1225
  - MIT
1256
1226
  metadata: {}
1257
- post_install_message:
1258
1227
  rdoc_options: []
1259
1228
  require_paths:
1260
1229
  - lib
@@ -1269,8 +1238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1269
1238
  - !ruby/object:Gem::Version
1270
1239
  version: '0'
1271
1240
  requirements: []
1272
- rubygems_version: 3.5.18
1273
- signing_key:
1241
+ rubygems_version: 3.6.3
1274
1242
  specification_version: 4
1275
1243
  summary: See description
1276
1244
  test_files: []