pact_broker-client 1.32.0 → 1.37.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 +4 -4
- data/.github/workflows/release_gem.yml +1 -0
- data/.github/workflows/test.yml +23 -0
- data/CHANGELOG.md +48 -0
- data/README.md +15 -3
- data/Rakefile +2 -0
- data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +331 -8
- data/lib/pact_broker/client.rb +1 -1
- data/lib/pact_broker/client/backports.rb +13 -0
- data/lib/pact_broker/client/cli/broker.rb +73 -28
- data/lib/pact_broker/client/cli/can_i_deploy_long_desc.txt +18 -9
- data/lib/pact_broker/client/cli/custom_thor.rb +9 -12
- data/lib/pact_broker/client/git.rb +43 -22
- data/lib/pact_broker/client/hal/entity.rb +27 -3
- data/lib/pact_broker/client/hal/http_client.rb +4 -0
- data/lib/pact_broker/client/hal/links.rb +39 -0
- data/lib/pact_broker/client/hal_client_methods.rb +11 -0
- data/lib/pact_broker/client/hash_refinements.rb +19 -0
- data/lib/pact_broker/client/matrix.rb +2 -1
- data/lib/pact_broker/client/matrix/text_formatter.rb +46 -11
- data/lib/pact_broker/client/publish_pacts.rb +93 -14
- data/lib/pact_broker/client/tasks/publication_task.rb +37 -6
- data/lib/pact_broker/client/version.rb +1 -1
- data/lib/pact_broker/client/versions/record_deployment.rb +109 -0
- data/pact-broker-client.gemspec +2 -0
- data/script/publish-pact.sh +7 -1
- data/script/trigger-release.sh +1 -1
- data/spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb +13 -2
- data/spec/lib/pact_broker/client/cli/broker_publish_spec.rb +108 -12
- data/spec/lib/pact_broker/client/git_spec.rb +39 -2
- data/spec/lib/pact_broker/client/hal/entity_spec.rb +4 -3
- data/spec/lib/pact_broker/client/matrix/text_formatter_spec.rb +29 -4
- data/spec/lib/pact_broker/client/publish_pacts_spec.rb +119 -7
- data/spec/lib/pact_broker/client/tasks/publication_task_spec.rb +88 -10
- data/spec/lib/pact_broker/client/versions/describe_spec.rb +0 -1
- data/spec/lib/pact_broker/client/versions/record_deployment_spec.rb +82 -0
- data/spec/pacts/pact_broker_client-pact_broker.json +335 -8
- data/spec/service_providers/pact_broker_client_create_version_spec.rb +89 -0
- data/spec/service_providers/pact_broker_client_matrix_spec.rb +4 -0
- data/spec/service_providers/pact_broker_client_versions_spec.rb +1 -2
- data/spec/service_providers/record_deployment_spec.rb +219 -0
- data/spec/support/matrix.json +6 -1
- data/spec/support/matrix.txt +3 -3
- data/spec/support/matrix_error.txt +3 -3
- data/spec/support/matrix_with_results.txt +10 -0
- data/tasks/pact.rake +2 -0
- metadata +44 -4
- data/.travis.yml +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 780fdf6ce281a9e3d94de58bb68705d0aa4b9b9fb7262ae1331c246c8dda5d6a
|
4
|
+
data.tar.gz: f15abe101f78db4245f654f2f2717d8b78be861146769c83e32a655e43c3ecc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27c3f50858c65ea0fc07a0b88c8eee758cfeb09f37c81d01d767a040ad51b377b43dd6fc080e9ae4f08dae4d10c379a9cda9b9d1dc456f680e06f2fc87860543
|
7
|
+
data.tar.gz: 6ce9d5caf203b2b41d5fd665f84b43109bf0ebec81019bb2747de2723de6f0b60cc38ecadd6e6cad7a4cd43e625ea96c595475a9c8f48f8b75c3c1180ff960db
|
@@ -0,0 +1,23 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on: push
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: "ubuntu-latest"
|
8
|
+
continue-on-error: ${{ matrix.experimental }}
|
9
|
+
strategy:
|
10
|
+
fail-fast: false
|
11
|
+
matrix:
|
12
|
+
ruby_version: ["2.2", "2.7"]
|
13
|
+
experimental: [false]
|
14
|
+
include:
|
15
|
+
- ruby_version: "3.0"
|
16
|
+
experimental: true
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
- uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby_version }}
|
22
|
+
- run: "bundle install"
|
23
|
+
- run: "bundle exec rake"
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,51 @@
|
|
1
|
+
<a name="v1.37.0"></a>
|
2
|
+
### v1.37.0 (2021-03-01)
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* add record-deployment ([6e5e208](/../../commit/6e5e208))
|
7
|
+
|
8
|
+
#### Bug Fixes
|
9
|
+
|
10
|
+
* use refinement to add compact to Hash ([c2c1cab](/../../commit/c2c1cab))
|
11
|
+
|
12
|
+
<a name="v1.36.0"></a>
|
13
|
+
### v1.36.0 (2021-02-21)
|
14
|
+
|
15
|
+
#### Features
|
16
|
+
|
17
|
+
* **can-i-deploy**
|
18
|
+
* add --to-environment option ([05ae44c](/../../commit/05ae44c))
|
19
|
+
|
20
|
+
* support version branch and build URL when publishing pacts ([a75f7df](/../../commit/a75f7df))
|
21
|
+
|
22
|
+
<a name="v1.35.0"></a>
|
23
|
+
### v1.35.0 (2021-01-21)
|
24
|
+
|
25
|
+
#### Features
|
26
|
+
|
27
|
+
* **can-i-deploy**
|
28
|
+
* display links to verification results in the output of can-i-deploy when using text format ([976950d](/../../commit/976950d))
|
29
|
+
|
30
|
+
<a name="v1.34.0"></a>
|
31
|
+
### v1.34.0 (2020-11-20)
|
32
|
+
|
33
|
+
#### Features
|
34
|
+
|
35
|
+
* **pact publish**
|
36
|
+
* strip new lines from version numbers and tags ([5842d24](/../../commit/5842d24))
|
37
|
+
|
38
|
+
* **publish**
|
39
|
+
* update output text when pact already exists and merging ([9b849d3](/../../commit/9b849d3))
|
40
|
+
|
41
|
+
<a name="v1.33.0"></a>
|
42
|
+
### v1.33.0 (2020-11-10)
|
43
|
+
|
44
|
+
#### Features
|
45
|
+
|
46
|
+
* **publish**
|
47
|
+
* allow pacts to be merged on the server side ([bd80f10](/../../commit/bd80f10))
|
48
|
+
|
1
49
|
<a name="v1.32.0"></a>
|
2
50
|
### v1.32.0 (2020-10-26)
|
3
51
|
|
data/README.md
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
|
3
3
|
A client for the Pact Broker. Publishes and retrieves pacts, verification results, pacticipants, pacticipant versions and tags. The functionality is available via a CLI, or via Ruby Rake tasks. You can also use the [Pact CLI Docker image](https://hub.docker.com/r/pactfoundation/pact-cli).
|
4
4
|
|
5
|
-
|
5
|
+

|
6
|
+
|
7
|
+
[](http://badge.fury.io/rb/pact_broker-client)
|
6
8
|
|
7
9
|

|
8
10
|
|
@@ -16,9 +18,19 @@ Download the latest [pact-ruby-standalone][pact-ruby-standalone] package. You do
|
|
16
18
|
|
17
19
|
Add `gem 'pact_broker-client'` to your Gemfile and run `bundle install`, or install the gem directly by running `gem install pact_broker-client`.
|
18
20
|
|
21
|
+
## Connecting to a Pact Broker with a self signed certificate
|
22
|
+
|
23
|
+
To connect to a Pact Broker that uses custom SSL cerificates, set the environment variable `$SSL_CERT_FILE` or `$SSL_CERT_DIR` to a path that contains the appropriate certificate. Read more at https://docs.pact.io/pact_broker/advanced_topics/using-tls#for-non-jvm
|
24
|
+
|
19
25
|
## Usage - CLI
|
20
26
|
|
21
|
-
|
27
|
+
The Pact Broker base URL can be specified either using the environment variable `$PACT_BROKER_BASE_URL` or the `-b` or `--broker-base-url` parameters.
|
28
|
+
|
29
|
+
Pact Broker authentication can be performed either using basic auth or a bearer token.
|
30
|
+
|
31
|
+
Basic auth parameters can be specified using the `$PACT_BROKER_USERNAME` and `$PACT_BROKER_PASSWORD` environment variables, or the `-u` or `--broker-username` and `-p` or `--broker-password` parameters.
|
32
|
+
|
33
|
+
Authentication using a bearer token can be specified using the environment variable `$PACT_BROKER_TOKEN` or the `-k` or `--broker-token` parameters. This authentication system is used by [Pactflow](pactflow.io).
|
22
34
|
|
23
35
|
### publish
|
24
36
|
|
@@ -188,7 +200,7 @@ Can I deploy all the applications in my monorepo to prod?
|
|
188
200
|
--pacticipant B --version a7e28207 \
|
189
201
|
--pacticipant C --version a7e28207 \
|
190
202
|
--to prod \
|
191
|
-
--broker-base-url BROKER_BASE_URL
|
203
|
+
--broker-base-url BROKER_BASE_URL
|
192
204
|
|
193
205
|
Mobile provider use case - can I deploy version b80e7b1b of Bar, all versions of Foo with tag "prod", and the latest version tagged "prod" of any other automatically calculated dependencies together? (Eg. where Bar is a provider and Foo is a mobile consumer with multiple versions in production, and Bar also has its own providers it needs to be compatible with.)
|
194
206
|
|
data/Rakefile
CHANGED
@@ -31,6 +31,8 @@ end
|
|
31
31
|
desc 'List provider states'
|
32
32
|
task 'pact:list_provider_states' do
|
33
33
|
require 'json'
|
34
|
+
require 'pact_broker/client/backports'
|
35
|
+
|
34
36
|
puts Dir.glob("spec/pacts/**.json").collect { | pact_file |
|
35
37
|
puts pact_file
|
36
38
|
JSON.parse(File.read(pact_file))['interactions'].collect{ | interaction| interaction['providerState'] }
|
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
#### Requests from Pact Broker Client to Pact Broker
|
4
4
|
|
5
|
+
* [A request for a pacticipant version](#a_request_for_a_pacticipant_version_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_2_environments_that_aren't_test_available_for_deployment) given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with 2 environments that aren't test available for deployment
|
6
|
+
|
7
|
+
* [A request for a pacticipant version](#a_request_for_a_pacticipant_version_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
|
8
|
+
|
9
|
+
* [A request for a pacticipant version](#a_request_for_a_pacticipant_version_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_does_not_exist) given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo does not exist
|
10
|
+
|
5
11
|
* [A request for the compatibility matrix for a pacticipant that does not exist](#a_request_for_the_compatibility_matrix_for_a_pacticipant_that_does_not_exist)
|
6
12
|
|
7
13
|
* [A request for the compatibility matrix for all versions of Foo and Bar](#a_request_for_the_compatibility_matrix_for_all_versions_of_Foo_and_Bar_given_the_pact_for_Foo_version_1.2.3_and_1.2.4_has_been_verified_by_Bar_version_4.5.6) given the pact for Foo version 1.2.3 and 1.2.4 has been verified by Bar version 4.5.6
|
@@ -20,6 +26,8 @@
|
|
20
26
|
|
21
27
|
* [A request for the compatibility matrix where only the version of Foo is specified](#a_request_for_the_compatibility_matrix_where_only_the_version_of_Foo_is_specified_given_the_pact_for_Foo_version_1.2.3_has_been_verified_by_Bar_version_4.5.6_and_version_5.6.7) given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6 and version 5.6.7
|
22
28
|
|
29
|
+
* [A request for the environments](#a_request_for_the_environments_given_an_environment_with_name_test_exists) given an environment with name test exists
|
30
|
+
|
23
31
|
* [A request for the index resource](#a_request_for_the_index_resource)
|
24
32
|
|
25
33
|
* [A request for the index resource](#a_request_for_the_index_resource_given_the_pacticipant_relations_are_present) given the pacticipant relations are present
|
@@ -28,6 +36,10 @@
|
|
28
36
|
|
29
37
|
* [A request for the index resource](#a_request_for_the_index_resource_given_the_pb:latest-version_relation_exists_in_the_index_resource) given the pb:latest-version relation exists in the index resource
|
30
38
|
|
39
|
+
* [A request for the index resource](#a_request_for_the_index_resource_given_the_pb:pacticipant-version_and_pb:environments_relations_exist_in_the_index_resource) given the pb:pacticipant-version and pb:environments relations exist in the index resource
|
40
|
+
|
41
|
+
* [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
|
42
|
+
|
31
43
|
* [A request for the index resource with the webhook relation](#a_request_for_the_index_resource_with_the_webhook_relation)
|
32
44
|
|
33
45
|
* [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'_given_a_latest_pact_between_Condor_and_the_Pricing_Service_exists) given a latest pact between Condor and the Pricing Service exists
|
@@ -42,6 +54,10 @@
|
|
42
54
|
|
43
55
|
* [A request to create a pacticipant](#a_request_to_create_a_pacticipant)
|
44
56
|
|
57
|
+
* [A request to create a pacticipant version](#a_request_to_create_a_pacticipant_version_given_version_26f353580936ad3b9baddb17b00e84f33c69e7cb_of_pacticipant_Foo_does_exist) given version 26f353580936ad3b9baddb17b00e84f33c69e7cb of pacticipant Foo does exist
|
58
|
+
|
59
|
+
* [A request to create a pacticipant version](#a_request_to_create_a_pacticipant_version_given_version_26f353580936ad3b9baddb17b00e84f33c69e7cb_of_pacticipant_Foo_does_not_exist) given version 26f353580936ad3b9baddb17b00e84f33c69e7cb of pacticipant Foo does not exist
|
60
|
+
|
45
61
|
* [A request to create a webhook for a consumer and provider](#a_request_to_create_a_webhook_for_a_consumer_and_provider_given_'Condor'_does_not_exist_in_the_pact-broker) given 'Condor' does not exist in the pact-broker
|
46
62
|
|
47
63
|
* [A request to create a webhook with a JSON body and a uuid](#a_request_to_create_a_webhook_with_a_JSON_body_and_a_uuid_given_the_'Pricing_Service'_and_'Condor'_already_exist_in_the_pact-broker) given the 'Pricing Service' and 'Condor' already exist in the pact-broker
|
@@ -76,6 +92,8 @@
|
|
76
92
|
|
77
93
|
* [A request to publish a pact with method put](#a_request_to_publish_a_pact_with_method_put_given_the_'Pricing_Service'_and_'Condor'_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
|
78
94
|
|
95
|
+
* [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
|
96
|
+
|
79
97
|
* [A request to register the repository URL of a pacticipant](#a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_'Pricing_Service'_already_exists_in_the_pact-broker) given the 'Pricing Service' already exists in the pact-broker
|
80
98
|
|
81
99
|
* [A request to register the repository URL of a pacticipant](#a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_'Pricing_Service'_does_not_exist_in_the_pact-broker) given the 'Pricing Service' does not exist in the pact-broker
|
@@ -108,6 +126,87 @@
|
|
108
126
|
|
109
127
|
#### Interactions
|
110
128
|
|
129
|
+
<a name="a_request_for_a_pacticipant_version_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_2_environments_that_aren't_test_available_for_deployment"></a>
|
130
|
+
Given **version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with 2 environments that aren't test available for deployment**, upon receiving **a request for a pacticipant version** from Pact Broker Client, with
|
131
|
+
```json
|
132
|
+
{
|
133
|
+
"method": "GET",
|
134
|
+
"path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
|
135
|
+
"headers": {
|
136
|
+
"Accept": "application/hal+json"
|
137
|
+
}
|
138
|
+
}
|
139
|
+
```
|
140
|
+
Pact Broker will respond with:
|
141
|
+
```json
|
142
|
+
{
|
143
|
+
"status": 200,
|
144
|
+
"headers": {
|
145
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
146
|
+
},
|
147
|
+
"body": {
|
148
|
+
"_links": {
|
149
|
+
"pb:record-deployment": [
|
150
|
+
{
|
151
|
+
"name": "prod",
|
152
|
+
"href": "href"
|
153
|
+
},
|
154
|
+
{
|
155
|
+
"name": "dev",
|
156
|
+
"href": "href"
|
157
|
+
}
|
158
|
+
]
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
```
|
163
|
+
<a name="a_request_for_a_pacticipant_version_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_a_test_environment_available_for_deployment"></a>
|
164
|
+
Given **version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment**, upon receiving **a request for a pacticipant version** from Pact Broker Client, with
|
165
|
+
```json
|
166
|
+
{
|
167
|
+
"method": "GET",
|
168
|
+
"path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
|
169
|
+
"headers": {
|
170
|
+
"Accept": "application/hal+json"
|
171
|
+
}
|
172
|
+
}
|
173
|
+
```
|
174
|
+
Pact Broker will respond with:
|
175
|
+
```json
|
176
|
+
{
|
177
|
+
"status": 200,
|
178
|
+
"headers": {
|
179
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
180
|
+
},
|
181
|
+
"body": {
|
182
|
+
"_links": {
|
183
|
+
"pb:record-deployment": [
|
184
|
+
{
|
185
|
+
"name": "test",
|
186
|
+
"href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-RECORD-DEPLOYMENT-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST"
|
187
|
+
}
|
188
|
+
]
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
```
|
193
|
+
<a name="a_request_for_a_pacticipant_version_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_does_not_exist"></a>
|
194
|
+
Given **version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo does not exist**, upon receiving **a request for a pacticipant version** from Pact Broker Client, with
|
195
|
+
```json
|
196
|
+
{
|
197
|
+
"method": "GET",
|
198
|
+
"path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
|
199
|
+
"headers": {
|
200
|
+
"Accept": "application/hal+json"
|
201
|
+
}
|
202
|
+
}
|
203
|
+
```
|
204
|
+
Pact Broker will respond with:
|
205
|
+
```json
|
206
|
+
{
|
207
|
+
"status": 404
|
208
|
+
}
|
209
|
+
```
|
111
210
|
<a name="a_request_for_the_compatibility_matrix_for_a_pacticipant_that_does_not_exist"></a>
|
112
211
|
Upon receiving **a request for the compatibility matrix for a pacticipant that does not exist** from Pact Broker Client, with
|
113
212
|
```json
|
@@ -164,7 +263,12 @@ Pact Broker will respond with:
|
|
164
263
|
},
|
165
264
|
"verificationResult": {
|
166
265
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
167
|
-
"success": true
|
266
|
+
"success": true,
|
267
|
+
"_links": {
|
268
|
+
"self": {
|
269
|
+
"href": "http://result"
|
270
|
+
}
|
271
|
+
}
|
168
272
|
},
|
169
273
|
"pact": {
|
170
274
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -185,7 +289,12 @@ Pact Broker will respond with:
|
|
185
289
|
},
|
186
290
|
"verificationResult": {
|
187
291
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
188
|
-
"success": true
|
292
|
+
"success": true,
|
293
|
+
"_links": {
|
294
|
+
"self": {
|
295
|
+
"href": "http://result"
|
296
|
+
}
|
297
|
+
}
|
189
298
|
},
|
190
299
|
"pact": {
|
191
300
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -233,7 +342,12 @@ Pact Broker will respond with:
|
|
233
342
|
},
|
234
343
|
"verificationResult": {
|
235
344
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
236
|
-
"success": true
|
345
|
+
"success": true,
|
346
|
+
"_links": {
|
347
|
+
"self": {
|
348
|
+
"href": "http://result"
|
349
|
+
}
|
350
|
+
}
|
237
351
|
},
|
238
352
|
"pact": {
|
239
353
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -281,7 +395,12 @@ Pact Broker will respond with:
|
|
281
395
|
},
|
282
396
|
"verificationResult": {
|
283
397
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
284
|
-
"success": true
|
398
|
+
"success": true,
|
399
|
+
"_links": {
|
400
|
+
"self": {
|
401
|
+
"href": "http://result"
|
402
|
+
}
|
403
|
+
}
|
285
404
|
},
|
286
405
|
"pact": {
|
287
406
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -329,7 +448,12 @@ Pact Broker will respond with:
|
|
329
448
|
},
|
330
449
|
"verificationResult": {
|
331
450
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
332
|
-
"success": true
|
451
|
+
"success": true,
|
452
|
+
"_links": {
|
453
|
+
"self": {
|
454
|
+
"href": "http://result"
|
455
|
+
}
|
456
|
+
}
|
333
457
|
},
|
334
458
|
"pact": {
|
335
459
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -413,7 +537,12 @@ Pact Broker will respond with:
|
|
413
537
|
},
|
414
538
|
"verificationResult": {
|
415
539
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
416
|
-
"success": true
|
540
|
+
"success": true,
|
541
|
+
"_links": {
|
542
|
+
"self": {
|
543
|
+
"href": "http://result"
|
544
|
+
}
|
545
|
+
}
|
417
546
|
},
|
418
547
|
"pact": {
|
419
548
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -484,7 +613,12 @@ Pact Broker will respond with:
|
|
484
613
|
},
|
485
614
|
"verificationResult": {
|
486
615
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
487
|
-
"success": true
|
616
|
+
"success": true,
|
617
|
+
"_links": {
|
618
|
+
"self": {
|
619
|
+
"href": "http://result"
|
620
|
+
}
|
621
|
+
}
|
488
622
|
},
|
489
623
|
"pact": {
|
490
624
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -494,6 +628,36 @@ Pact Broker will respond with:
|
|
494
628
|
}
|
495
629
|
}
|
496
630
|
```
|
631
|
+
<a name="a_request_for_the_environments_given_an_environment_with_name_test_exists"></a>
|
632
|
+
Given **an environment with name test exists**, upon receiving **a request for the environments** from Pact Broker Client, with
|
633
|
+
```json
|
634
|
+
{
|
635
|
+
"method": "GET",
|
636
|
+
"path": "/HAL-REL-PLACEHOLDER-PB-ENVIRONMENTS",
|
637
|
+
"headers": {
|
638
|
+
"Accept": "application/hal+json"
|
639
|
+
}
|
640
|
+
}
|
641
|
+
```
|
642
|
+
Pact Broker will respond with:
|
643
|
+
```json
|
644
|
+
{
|
645
|
+
"status": 200,
|
646
|
+
"headers": {
|
647
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
648
|
+
},
|
649
|
+
"body": {
|
650
|
+
"_links": {
|
651
|
+
"pb:environments": [
|
652
|
+
{
|
653
|
+
"name": "test",
|
654
|
+
"href": "href"
|
655
|
+
}
|
656
|
+
]
|
657
|
+
}
|
658
|
+
}
|
659
|
+
}
|
660
|
+
```
|
497
661
|
<a name="a_request_for_the_index_resource"></a>
|
498
662
|
Upon receiving **a request for the index resource** from Pact Broker Client, with
|
499
663
|
```json
|
@@ -611,6 +775,63 @@ Pact Broker will respond with:
|
|
611
775
|
}
|
612
776
|
}
|
613
777
|
```
|
778
|
+
<a name="a_request_for_the_index_resource_given_the_pb:pacticipant-version_and_pb:environments_relations_exist_in_the_index_resource"></a>
|
779
|
+
Given **the pb:pacticipant-version and pb:environments relations exist in the index resource**, upon receiving **a request for the index resource** from Pact Broker Client, with
|
780
|
+
```json
|
781
|
+
{
|
782
|
+
"method": "GET",
|
783
|
+
"path": "/",
|
784
|
+
"headers": {
|
785
|
+
"Accept": "application/hal+json"
|
786
|
+
}
|
787
|
+
}
|
788
|
+
```
|
789
|
+
Pact Broker will respond with:
|
790
|
+
```json
|
791
|
+
{
|
792
|
+
"status": 200,
|
793
|
+
"headers": {
|
794
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
795
|
+
},
|
796
|
+
"body": {
|
797
|
+
"_links": {
|
798
|
+
"pb:pacticipant-version": {
|
799
|
+
"href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-{pacticipant}-{version}"
|
800
|
+
},
|
801
|
+
"pb:environments": {
|
802
|
+
"href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-ENVIRONMENTS"
|
803
|
+
}
|
804
|
+
}
|
805
|
+
}
|
806
|
+
}
|
807
|
+
```
|
808
|
+
<a name="a_request_for_the_index_resource_given_the_pb:pacticipant-version_relation_exists_in_the_index_resource"></a>
|
809
|
+
Given **the pb:pacticipant-version relation exists in the index resource**, upon receiving **a request for the index resource** from Pact Broker Client, with
|
810
|
+
```json
|
811
|
+
{
|
812
|
+
"method": "get",
|
813
|
+
"path": "/",
|
814
|
+
"headers": {
|
815
|
+
"Accept": "application/hal+json"
|
816
|
+
}
|
817
|
+
}
|
818
|
+
```
|
819
|
+
Pact Broker will respond with:
|
820
|
+
```json
|
821
|
+
{
|
822
|
+
"status": 200,
|
823
|
+
"headers": {
|
824
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
825
|
+
},
|
826
|
+
"body": {
|
827
|
+
"_links": {
|
828
|
+
"pb:pacticipant-version": {
|
829
|
+
"href": "http://localhost:1234/HAL-REL-PLACEHOLDER-INDEX-PB-PACTICIPANT-VERSION-{pacticipant}-{version}"
|
830
|
+
}
|
831
|
+
}
|
832
|
+
}
|
833
|
+
}
|
834
|
+
```
|
614
835
|
<a name="a_request_for_the_index_resource_with_the_webhook_relation"></a>
|
615
836
|
Upon receiving **a request for the index resource with the webhook relation** from Pact Broker Client, with
|
616
837
|
```json
|
@@ -735,7 +956,12 @@ Pact Broker will respond with:
|
|
735
956
|
},
|
736
957
|
"verificationResult": {
|
737
958
|
"verifiedAt": "2017-10-10T12:49:04+11:00",
|
738
|
-
"success": true
|
959
|
+
"success": true,
|
960
|
+
"_links": {
|
961
|
+
"self": {
|
962
|
+
"href": "http://result"
|
963
|
+
}
|
964
|
+
}
|
739
965
|
},
|
740
966
|
"pact": {
|
741
967
|
"createdAt": "2017-10-10T12:49:04+11:00"
|
@@ -858,6 +1084,76 @@ Pact Broker will respond with:
|
|
858
1084
|
}
|
859
1085
|
}
|
860
1086
|
```
|
1087
|
+
<a name="a_request_to_create_a_pacticipant_version_given_version_26f353580936ad3b9baddb17b00e84f33c69e7cb_of_pacticipant_Foo_does_exist"></a>
|
1088
|
+
Given **version 26f353580936ad3b9baddb17b00e84f33c69e7cb of pacticipant Foo does exist**, upon receiving **a request to create a pacticipant version** from Pact Broker Client, with
|
1089
|
+
```json
|
1090
|
+
{
|
1091
|
+
"method": "put",
|
1092
|
+
"path": "/HAL-REL-PLACEHOLDER-INDEX-PB-PACTICIPANT-VERSION-Foo-26f353580936ad3b9baddb17b00e84f33c69e7cb",
|
1093
|
+
"headers": {
|
1094
|
+
"Content-Type": "application/json",
|
1095
|
+
"Accept": "application/hal+json"
|
1096
|
+
},
|
1097
|
+
"body": {
|
1098
|
+
"branch": "main",
|
1099
|
+
"buildUrl": "http://my-ci/builds/1"
|
1100
|
+
}
|
1101
|
+
}
|
1102
|
+
```
|
1103
|
+
Pact Broker will respond with:
|
1104
|
+
```json
|
1105
|
+
{
|
1106
|
+
"status": 200,
|
1107
|
+
"headers": {
|
1108
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
1109
|
+
},
|
1110
|
+
"body": {
|
1111
|
+
"number": "26f353580936ad3b9baddb17b00e84f33c69e7cb",
|
1112
|
+
"branch": "main",
|
1113
|
+
"buildUrl": "http://my-ci/builds/1",
|
1114
|
+
"_links": {
|
1115
|
+
"self": {
|
1116
|
+
"href": "http://localhost:1234/some-url"
|
1117
|
+
}
|
1118
|
+
}
|
1119
|
+
}
|
1120
|
+
}
|
1121
|
+
```
|
1122
|
+
<a name="a_request_to_create_a_pacticipant_version_given_version_26f353580936ad3b9baddb17b00e84f33c69e7cb_of_pacticipant_Foo_does_not_exist"></a>
|
1123
|
+
Given **version 26f353580936ad3b9baddb17b00e84f33c69e7cb of pacticipant Foo does not exist**, upon receiving **a request to create a pacticipant version** from Pact Broker Client, with
|
1124
|
+
```json
|
1125
|
+
{
|
1126
|
+
"method": "put",
|
1127
|
+
"path": "/HAL-REL-PLACEHOLDER-INDEX-PB-PACTICIPANT-VERSION-Foo-26f353580936ad3b9baddb17b00e84f33c69e7cb",
|
1128
|
+
"headers": {
|
1129
|
+
"Content-Type": "application/json",
|
1130
|
+
"Accept": "application/hal+json"
|
1131
|
+
},
|
1132
|
+
"body": {
|
1133
|
+
"branch": "main",
|
1134
|
+
"buildUrl": "http://my-ci/builds/1"
|
1135
|
+
}
|
1136
|
+
}
|
1137
|
+
```
|
1138
|
+
Pact Broker will respond with:
|
1139
|
+
```json
|
1140
|
+
{
|
1141
|
+
"status": 201,
|
1142
|
+
"headers": {
|
1143
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
1144
|
+
},
|
1145
|
+
"body": {
|
1146
|
+
"number": "26f353580936ad3b9baddb17b00e84f33c69e7cb",
|
1147
|
+
"branch": "main",
|
1148
|
+
"buildUrl": "http://my-ci/builds/1",
|
1149
|
+
"_links": {
|
1150
|
+
"self": {
|
1151
|
+
"href": "http://localhost:1234/some-url"
|
1152
|
+
}
|
1153
|
+
}
|
1154
|
+
}
|
1155
|
+
}
|
1156
|
+
```
|
861
1157
|
<a name="a_request_to_create_a_webhook_for_a_consumer_and_provider_given_'Condor'_does_not_exist_in_the_pact-broker"></a>
|
862
1158
|
Given **'Condor' does not exist in the pact-broker**, upon receiving **a request to create a webhook for a consumer and provider** from Pact Broker Client, with
|
863
1159
|
```json
|
@@ -1632,6 +1928,33 @@ Pact Broker will respond with:
|
|
1632
1928
|
}
|
1633
1929
|
}
|
1634
1930
|
```
|
1931
|
+
<a name="a_request_to_record_a_deployment_given_version_5556b8149bf8bac76bc30f50a8a2dd4c22c85f30_of_pacticipant_Foo_exists_with_a_test_environment_available_for_deployment"></a>
|
1932
|
+
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
|
1933
|
+
```json
|
1934
|
+
{
|
1935
|
+
"method": "POST",
|
1936
|
+
"path": "/HAL-REL-PLACEHOLDER-PB-RECORD-DEPLOYMENT-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST",
|
1937
|
+
"headers": {
|
1938
|
+
"Content-Type": "application/json",
|
1939
|
+
"Accept": "application/hal+json"
|
1940
|
+
},
|
1941
|
+
"body": {
|
1942
|
+
"replacedPreviousDeployedVersion": true
|
1943
|
+
}
|
1944
|
+
}
|
1945
|
+
```
|
1946
|
+
Pact Broker will respond with:
|
1947
|
+
```json
|
1948
|
+
{
|
1949
|
+
"status": 201,
|
1950
|
+
"headers": {
|
1951
|
+
"Content-Type": "application/hal+json;charset=utf-8"
|
1952
|
+
},
|
1953
|
+
"body": {
|
1954
|
+
"replacedPreviousDeployedVersion": true
|
1955
|
+
}
|
1956
|
+
}
|
1957
|
+
```
|
1635
1958
|
<a name="a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_'Pricing_Service'_already_exists_in_the_pact-broker"></a>
|
1636
1959
|
Given **the 'Pricing Service' already exists in the pact-broker**, upon receiving **a request to register the repository URL of a pacticipant** from Pact Broker Client, with
|
1637
1960
|
```json
|