pact_broker 2.114.0 → 2.115.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: 159a993d4863a7a528c058763f2c5a5b6a3104710757d51110fc3d08b9f6c38b
4
- data.tar.gz: 1832a40fbf58b8d54e375d460d50b5db331167d09dc695252cbf91e57878c8e7
3
+ metadata.gz: 5d60c3b6a432bf6499e5167d6c1b06a6799ef58fb3cf5464000ebe6712352653
4
+ data.tar.gz: e8b326e736249b6de4cf47baca16f0551e4a45de24d61a9839ba91b077577959
5
5
  SHA512:
6
- metadata.gz: 55a9a315ba42be7d8533af1e3fb895e5fcc6f24e49a199ae1f42150e6119b7c2cc80aec2e9b7ac4e56d2fc291ab665e44948f191912c9fe355aca74fc4abf1f9
7
- data.tar.gz: fe719a11a09ca94776bebe02e51d66da51809080b7c009dfbd8a2ec208802e66863713e3ee698145accb800fed5d7dde8d0d184aa331917f840017b3dafee88d
6
+ metadata.gz: b1973fc6c1f1b44ab6fa5ea7c7986cb588f7e69cd6bc3a25c5abca52675c5cfeb453c1ee2db261ebeb4d53ffdf5d6d7e4985010c7a89dc8a162521f13728af3e
7
+ data.tar.gz: 06c0d372bc3f97fa958d74e064033d89e3dd096a835290c44c59fa7b7331deeb2b50653b5b4be23f194db933250520696feba15b8e24bac5ef3669ca53f52289
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ <a name="v2.115.0"></a>
2
+ ### v2.115.0 (2025-03-17)
3
+
4
+ #### Features
5
+
6
+ * group provider states by consumers ([e39860a9](/../../commit/e39860a9))
7
+
8
+ #### Bug Fixes
9
+
10
+ * dedupe non unique provider states #789 ([3cf22169](/../../commit/3cf22169))
11
+ * explicitly order labels by name ([d25746c1](/../../commit/d25746c1))
12
+
1
13
  <a name="v2.114.0"></a>
2
14
  ### v2.114.0 (2025-03-06)
3
15
 
@@ -6,13 +6,30 @@ module PactBroker
6
6
  class ProviderStateDecorator < BaseDecorator
7
7
  camelize_property_names
8
8
 
9
- property :name
10
- property :params
11
-
9
+ property :name, getter: -> (context) { context[:represented][:name] }
10
+ property :params, getter: -> (context) { context[:represented][:params] }
11
+ property :consumers, getter: -> (context) { context[:represented][:consumers] }
12
12
  end
13
13
 
14
14
  class ProviderStatesDecorator < BaseDecorator
15
- collection :providerStates, getter: -> (context) { context[:represented].sort_by(&:name) }, :extend => PactBroker::Api::Decorators::ProviderStateDecorator
15
+ collection :providerStates, getter: -> (context) {
16
+ consumers_map = {}
17
+
18
+ context[:represented].each do |item|
19
+ item["providerStates"].each do |provider_state|
20
+ provider_state = provider_state.to_h
21
+ provider_state[:consumers] ||= []
22
+ provider_state[:consumers] << item["consumer"]
23
+ consumers_map[[provider_state[:name], provider_state[:params]]] ||= []
24
+ consumers_map[[provider_state[:name], provider_state[:params]]] += provider_state[:consumers]
25
+ end
26
+ end
27
+
28
+ consumers_map.map do |(name, params), consumers|
29
+ { name: name, params: params, consumers: consumers.uniq }.transform_keys(&:to_sym)
30
+ end
31
+ .sort_by { |provider_state| provider_state[:name] }
32
+ }, :extend => PactBroker::Api::Decorators::ProviderStateDecorator
16
33
  end
17
34
  end
18
35
  end
@@ -5,7 +5,7 @@ module PactBroker
5
5
  class Repository
6
6
 
7
7
  def get_all_unique_labels pagination_options = {}
8
- PactBroker::Domain::Label.distinct.select(:name).all_with_pagination_options(pagination_options)
8
+ PactBroker::Domain::Label.distinct.select(:name).order(:name).all_with_pagination_options(pagination_options)
9
9
  end
10
10
 
11
11
  def create args
@@ -14,7 +14,7 @@ module PactBroker
14
14
  def self.list_provider_states(provider)
15
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
16
  query.all.flat_map do | pact_publication |
17
- pact_publication.to_domain.content_object.provider_states
17
+ { "providerStates" => pact_publication.to_domain.content_object.provider_states, "consumer" => pact_publication.to_domain.consumer.name }
18
18
  end
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module PactBroker
2
- VERSION = "2.114.0"
2
+ VERSION = "2.115.0"
3
3
  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.114.0
4
+ version: 2.115.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bethany Skurrie
@@ -9,7 +9,7 @@ authors:
9
9
  - Warner Godfrey
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-03-06 00:00:00.000000000 Z
12
+ date: 1980-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -1227,7 +1227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1227
1227
  - !ruby/object:Gem::Version
1228
1228
  version: '0'
1229
1229
  requirements: []
1230
- rubygems_version: 3.6.5
1230
+ rubygems_version: 3.6.7
1231
1231
  specification_version: 4
1232
1232
  summary: See description
1233
1233
  test_files: []