pact_broker-client 1.50.0 → 1.51.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: ebb0899f37221475b93ac43b01a535aa03a0f991fcf367556e83697f293873b8
4
- data.tar.gz: 1627a56a6fc1302c6bc381786c4a6f385485fa26a75cded5b3630ffb5afa1809
3
+ metadata.gz: 854312863c664ff8f355fcab3d2cb3733bf7c229f75b98aa9f2f9187a93d5409
4
+ data.tar.gz: c02cfe9055664950a2811e3351c701431e5a6916a6a06e21e34aab14ee94520c
5
5
  SHA512:
6
- metadata.gz: 45636dfd9a5b865d870baf6147833562365e4fbf9fbbe80b9b0d5f34779defd3dacec69ddf1772167a65ab17da6389d8c7f183764e594fc23b85cecfe15b60ca
7
- data.tar.gz: 02d6f6a5a7514a32711179de4667bd57a247c440d6c95c046eacd291b0a31bf2eff89f9027bf79a0f14bf78fcb45aa9102b415c0945bee13477de539bfa4f4f8
6
+ metadata.gz: d5be4a8a3fc89a6606aac689d9da2a335393d0ef8e0b01e7f09c5745798c475ff1b53be34b00284c00e0cadaffecd834a75d03cca9805c8b386e2c9f223af8ec
7
+ data.tar.gz: dc9192512acf2a696f635274b504042a960c8d3eded2ae7b07e17e1dc982de0badc177686fb62d9516d9976cc5d9a5fd9564b4d02bf47f6ad2bcc3e56576a590
@@ -27,7 +27,7 @@ jobs:
27
27
  strategy:
28
28
  fail-fast: false
29
29
  matrix:
30
- feature: ["", "publish_contracts"]
30
+ feature: [""]
31
31
  steps:
32
32
  - uses: actions/checkout@v2
33
33
  - uses: ruby/setup-ruby@v1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ <a name="v1.51.0"></a>
2
+ ### v1.51.0 (2021-09-22)
3
+
4
+ #### Features
5
+
6
+ * enable use of the new 'all in one' contracts publishing endpoint without a feature toggle ([6850ace](/../../commit/6850ace))
7
+
1
8
  <a name="v1.50.0"></a>
2
9
  ### v1.50.0 (2021-08-16)
3
10
 
@@ -42,6 +42,8 @@
42
42
 
43
43
  * [A request for the index resource](#a_request_for_the_index_resource_given_the_pb:pacticipant-version_relation_exists_in_the_index_resource) given the pb:pacticipant-version relation exists in the index resource
44
44
 
45
+ * [A request for the index resource](#a_request_for_the_index_resource_given_the_pb:publish-contracts_relations_exists_in_the_index_resource) given the pb:publish-contracts relations exists in the index resource
46
+
45
47
  * [A request for the index resource with the webhook relation](#a_request_for_the_index_resource_with_the_webhook_relation)
46
48
 
47
49
  * [A request for the list of the latest pacts from all consumers for the Pricing Service'](#a_request_for_the_list_of_the_latest_pacts_from_all_consumers_for_the_Pricing_Service&#39;_given_a_latest_pact_between_Condor_and_the_Pricing_Service_exists) given a latest pact between Condor and the Pricing Service exists
@@ -100,6 +102,8 @@
100
102
 
101
103
  * [A request to publish a pact with method put](#a_request_to_publish_a_pact_with_method_put_given_the_&#39;Pricing_Service&#39;_and_&#39;Condor&#39;_already_exist_in_the_pact-broker,_and_Condor_already_has_a_pact_published_for_version_1.3.0) given the 'Pricing Service' and 'Condor' already exist in the pact-broker, and Condor already has a pact published for version 1.3.0
102
104
 
105
+ * [A request to publish contracts](#a_request_to_publish_contracts)
106
+
103
107
  * [A request to record a deployment](#a_request_to_record_a_deployment_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_a_test_environment_available_for_deployment) given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment
104
108
 
105
109
  * [A request to record a release](#a_request_to_record_a_release_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_a_test_environment_available_for_deployment) given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment
@@ -882,6 +886,33 @@ Pact Broker will respond with:
882
886
  }
883
887
  }
884
888
  ```
889
+ <a name="a_request_for_the_index_resource_given_the_pb:publish-contracts_relations_exists_in_the_index_resource"></a>
890
+ Given **the pb:publish-contracts relations exists in the index resource**, upon receiving **a request for the index resource** from Pact Broker Client, with
891
+ ```json
892
+ {
893
+ "method": "GET",
894
+ "path": "/",
895
+ "headers": {
896
+ "Accept": "application/hal+json"
897
+ }
898
+ }
899
+ ```
900
+ Pact Broker will respond with:
901
+ ```json
902
+ {
903
+ "status": 200,
904
+ "headers": {
905
+ "Content-Type": "application/hal+json;charset=utf-8"
906
+ },
907
+ "body": {
908
+ "_links": {
909
+ "pb:publish-contracts": {
910
+ "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS"
911
+ }
912
+ }
913
+ }
914
+ }
915
+ ```
885
916
  <a name="a_request_for_the_index_resource_with_the_webhook_relation"></a>
886
917
  Upon receiving **a request for the index resource with the webhook relation** from Pact Broker Client, with
887
918
  ```json
@@ -2119,6 +2150,75 @@ Pact Broker will respond with:
2119
2150
  }
2120
2151
  }
2121
2152
  ```
2153
+ <a name="a_request_to_publish_contracts"></a>
2154
+ Upon receiving **a request to publish contracts** from Pact Broker Client, with
2155
+ ```json
2156
+ {
2157
+ "method": "POST",
2158
+ "path": "/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS",
2159
+ "headers": {
2160
+ "Content-Type": "application/json",
2161
+ "Accept": "application/hal+json"
2162
+ },
2163
+ "body": {
2164
+ "pacticipantName": "Foo",
2165
+ "pacticipantVersionNumber": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
2166
+ "branch": "main",
2167
+ "tags": [
2168
+ "dev"
2169
+ ],
2170
+ "buildUrl": "http://build",
2171
+ "contracts": [
2172
+ {
2173
+ "consumerName": "Foo",
2174
+ "providerName": "Bar",
2175
+ "specification": "pact",
2176
+ "contentType": "application/json",
2177
+ "content": "eyJjb25zdW1lciI6eyJuYW1lIjoiRm9vIn0sInByb3ZpZGVyIjp7Im5hbWUiOiJCYXIifSwiaW50ZXJhY3Rpb25zIjpbeyJkZXNjcmlwdGlvbiI6ImFuIGV4YW1wbGUgcmVxdWVzdCIsInByb3ZpZGVyU3RhdGUiOiJhIHByb3ZpZGVyIHN0YXRlIiwicmVxdWVzdCI6eyJtZXRob2QiOiJHRVQiLCJwYXRoIjoiLyIsImhlYWRlcnMiOnt9fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImhlYWRlcnMiOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vaGFsK2pzb24ifX19XSwibWV0YWRhdGEiOnsicGFjdFNwZWNpZmljYXRpb24iOnsidmVyc2lvbiI6IjIuMC4wIn19fQ==",
2178
+ "onConflict": "merge"
2179
+ }
2180
+ ]
2181
+ }
2182
+ }
2183
+ ```
2184
+ Pact Broker will respond with:
2185
+ ```json
2186
+ {
2187
+ "status": 200,
2188
+ "headers": {
2189
+ "Content-Type": "application/hal+json;charset=utf-8"
2190
+ },
2191
+ "body": {
2192
+ "_embedded": {
2193
+ "pacticipant": {
2194
+ "name": "Foo"
2195
+ },
2196
+ "version": {
2197
+ "number": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
2198
+ "buildUrl": "http://build"
2199
+ }
2200
+ },
2201
+ "logs": [
2202
+ {
2203
+ "level": "info",
2204
+ "message": "some message"
2205
+ }
2206
+ ],
2207
+ "_links": {
2208
+ "pb:pacticipant-version-tags": [
2209
+ {
2210
+ "name": "dev"
2211
+ }
2212
+ ],
2213
+ "pb:contracts": [
2214
+ {
2215
+ "href": "http://some-pact"
2216
+ }
2217
+ ]
2218
+ }
2219
+ }
2220
+ }
2221
+ ```
2122
2222
  <a name="a_request_to_record_a_deployment_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_a_test_environment_available_for_deployment"></a>
2123
2223
  Given **version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment**, upon receiving **a request to record a deployment** from Pact Broker Client, with
2124
2224
  ```json
@@ -28,7 +28,7 @@ module PactBroker
28
28
 
29
29
  def call
30
30
  validate
31
- if ENV.fetch("PACT_BROKER_FEATURES", "").include?("publish_contracts") && index_resource.can?("pb:publish-contracts")
31
+ if index_resource.can?("pb:publish-contracts")
32
32
  publish_pacts
33
33
  PactBroker::Client::CommandResult.new(success?, message)
34
34
  else
@@ -115,9 +115,8 @@ module PactBroker
115
115
  specification: "pact",
116
116
  contentType: "application/json",
117
117
  content: Base64.strict_encode64(pact_hash.to_json),
118
- writeMode: write_mode,
119
- onConflict: write_mode
120
- }
118
+ onConflict: on_conflict
119
+ }.compact
121
120
  end
122
121
  end
123
122
 
@@ -137,8 +136,8 @@ module PactBroker
137
136
  pact_files.collect(&:consumer_name).uniq
138
137
  end
139
138
 
140
- def write_mode
141
- options[:merge] ? "merge" : "overwrite"
139
+ def on_conflict
140
+ options[:merge] ? "merge" : nil
142
141
  end
143
142
 
144
143
  def validate
@@ -1,5 +1,5 @@
1
1
  module PactBroker
2
2
  module Client
3
- VERSION = '1.50.0'
3
+ VERSION = '1.51.0'
4
4
  end
5
5
  end
@@ -28,7 +28,7 @@ bundle exec bin/pact-broker create-or-update-webhook http://localhost:9393 \
28
28
  # --contract-published
29
29
 
30
30
 
31
- PACT_BROKER_FEATURES=publish_contracts bundle exec bin/pact-broker publish spec/pacts/pact_broker_client-pact_broker.json \
31
+ bundle exec bin/pact-broker publish spec/pacts/pact_broker_client-pact_broker.json \
32
32
  --consumer-app-version 1.2.26 \
33
33
  --broker-base-url http://localhost:9292 \
34
34
  --broker-token localhost \
@@ -1636,6 +1636,112 @@
1636
1636
  }
1637
1637
  }
1638
1638
  },
1639
+ {
1640
+ "description": "a request for the index resource",
1641
+ "providerState": "the pb:publish-contracts relations exists in the index resource",
1642
+ "request": {
1643
+ "method": "GET",
1644
+ "path": "/",
1645
+ "headers": {
1646
+ "Accept": "application/hal+json"
1647
+ }
1648
+ },
1649
+ "response": {
1650
+ "status": 200,
1651
+ "headers": {
1652
+ "Content-Type": "application/hal+json;charset=utf-8"
1653
+ },
1654
+ "body": {
1655
+ "_links": {
1656
+ "pb:publish-contracts": {
1657
+ "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS"
1658
+ }
1659
+ }
1660
+ },
1661
+ "matchingRules": {
1662
+ "$.body._links.pb:publish-contracts.href": {
1663
+ "match": "regex",
1664
+ "regex": "http:\\/\\/.*"
1665
+ }
1666
+ }
1667
+ }
1668
+ },
1669
+ {
1670
+ "description": "a request to publish contracts",
1671
+ "request": {
1672
+ "method": "POST",
1673
+ "path": "/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS",
1674
+ "headers": {
1675
+ "Content-Type": "application/json",
1676
+ "Accept": "application/hal+json"
1677
+ },
1678
+ "body": {
1679
+ "pacticipantName": "Foo",
1680
+ "pacticipantVersionNumber": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
1681
+ "branch": "main",
1682
+ "tags": [
1683
+ "dev"
1684
+ ],
1685
+ "buildUrl": "http://build",
1686
+ "contracts": [
1687
+ {
1688
+ "consumerName": "Foo",
1689
+ "providerName": "Bar",
1690
+ "specification": "pact",
1691
+ "contentType": "application/json",
1692
+ "content": "eyJjb25zdW1lciI6eyJuYW1lIjoiRm9vIn0sInByb3ZpZGVyIjp7Im5hbWUiOiJCYXIifSwiaW50ZXJhY3Rpb25zIjpbeyJkZXNjcmlwdGlvbiI6ImFuIGV4YW1wbGUgcmVxdWVzdCIsInByb3ZpZGVyU3RhdGUiOiJhIHByb3ZpZGVyIHN0YXRlIiwicmVxdWVzdCI6eyJtZXRob2QiOiJHRVQiLCJwYXRoIjoiLyIsImhlYWRlcnMiOnt9fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImhlYWRlcnMiOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vaGFsK2pzb24ifX19XSwibWV0YWRhdGEiOnsicGFjdFNwZWNpZmljYXRpb24iOnsidmVyc2lvbiI6IjIuMC4wIn19fQ==",
1693
+ "onConflict": "merge"
1694
+ }
1695
+ ]
1696
+ }
1697
+ },
1698
+ "response": {
1699
+ "status": 200,
1700
+ "headers": {
1701
+ "Content-Type": "application/hal+json;charset=utf-8"
1702
+ },
1703
+ "body": {
1704
+ "_embedded": {
1705
+ "pacticipant": {
1706
+ "name": "Foo"
1707
+ },
1708
+ "version": {
1709
+ "number": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
1710
+ "buildUrl": "http://build"
1711
+ }
1712
+ },
1713
+ "logs": [
1714
+ {
1715
+ "level": "info",
1716
+ "message": "some message"
1717
+ }
1718
+ ],
1719
+ "_links": {
1720
+ "pb:pacticipant-version-tags": [
1721
+ {
1722
+ "name": "dev"
1723
+ }
1724
+ ],
1725
+ "pb:contracts": [
1726
+ {
1727
+ "href": "http://some-pact"
1728
+ }
1729
+ ]
1730
+ }
1731
+ },
1732
+ "matchingRules": {
1733
+ "$.body.logs": {
1734
+ "min": 1
1735
+ },
1736
+ "$.body.logs[*].*": {
1737
+ "match": "type"
1738
+ },
1739
+ "$.body._links.pb:contracts[0].href": {
1740
+ "match": "type"
1741
+ }
1742
+ }
1743
+ }
1744
+ },
1639
1745
  {
1640
1746
  "description": "a request for the index resource",
1641
1747
  "providerState": "the pb:pacticipant-version and pb:environments relations exist in the index resource",
@@ -1,9 +1,7 @@
1
1
  require 'pact_broker/client/publish_pacts'
2
2
  require 'service_providers/pact_helper'
3
3
 
4
- publish_contracts_feature_on = ENV.fetch('PACT_BROKER_FEATURES', '').include?("publish_contracts")
5
-
6
- RSpec.describe "publishing contracts", pact: true, skip: !publish_contracts_feature_on do
4
+ RSpec.describe "publishing contracts", pact: true do
7
5
  before do
8
6
  allow_any_instance_of(PactBroker::Client::Hal::HttpClient).to receive(:sleep)
9
7
  allow_any_instance_of(PactBroker::Client::Hal::HttpClient).to receive(:default_max_tries).and_return(1)
@@ -27,7 +25,7 @@ RSpec.describe "publishing contracts", pact: true, skip: !publish_contracts_feat
27
25
  end
28
26
  let(:pact_file_path_1) { "spec/fixtures/foo-bar.json" }
29
27
  let(:pact_file_paths) { [pact_file_path_1] }
30
- let(:options) { {} }
28
+ let(:options) { { merge: true } }
31
29
  let(:pact_broker_client_options) { {} }
32
30
  let(:expected_content) { Base64.strict_encode64(JSON.parse(File.read(pact_file_path_1)).to_json) }
33
31
  let(:request_body) do
@@ -44,8 +42,7 @@ RSpec.describe "publishing contracts", pact: true, skip: !publish_contracts_feat
44
42
  specification: "pact",
45
43
  contentType: "application/json",
46
44
  content: expected_content,
47
- writeMode: "overwrite",
48
- onConflict: "overwrite"
45
+ onConflict: "merge"
49
46
  }
50
47
  ]
51
48
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.50.0
4
+ version: 1.51.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Beth Skurrie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-19 00:00:00.000000000 Z
11
+ date: 2021-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -431,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
431
431
  - !ruby/object:Gem::Version
432
432
  version: '0'
433
433
  requirements: []
434
- rubygems_version: 3.2.26
434
+ rubygems_version: 3.2.27
435
435
  signing_key:
436
436
  specification_version: 4
437
437
  summary: See description