pact_broker 2.112.0 → 2.113.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.
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: []