pact_broker-client 1.41.0 → 1.46.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.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +21 -0
  3. data/CHANGELOG.md +57 -0
  4. data/README.md +69 -48
  5. data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +79 -102
  6. data/doc/pacts/markdown/Pact Broker Client - Pactflow.md +94 -0
  7. data/doc/pacts/markdown/README.md +1 -0
  8. data/lib/pact_broker/client/backports.rb +9 -0
  9. data/lib/pact_broker/client/base_command.rb +98 -0
  10. data/lib/pact_broker/client/can_i_deploy.rb +40 -5
  11. data/lib/pact_broker/client/cli/broker.rb +18 -160
  12. data/lib/pact_broker/client/cli/custom_thor.rb +12 -16
  13. data/lib/pact_broker/client/cli/deployment_commands.rb +94 -0
  14. data/lib/pact_broker/client/cli/environment_commands.rb +70 -0
  15. data/lib/pact_broker/client/cli/pacticipant_commands.rb +53 -0
  16. data/lib/pact_broker/client/cli/webhook_commands.rb +122 -0
  17. data/lib/pact_broker/client/deployments.rb +4 -0
  18. data/lib/pact_broker/client/deployments/record_deployment.rb +38 -0
  19. data/lib/pact_broker/client/deployments/record_release.rb +99 -0
  20. data/lib/pact_broker/client/deployments/record_support_ended.rb +103 -0
  21. data/lib/pact_broker/client/deployments/record_undeployment.rb +127 -0
  22. data/lib/pact_broker/client/describe_text_formatter.rb +23 -0
  23. data/lib/pact_broker/client/environments.rb +6 -0
  24. data/lib/pact_broker/client/environments/create_environment.rb +31 -0
  25. data/lib/pact_broker/client/environments/delete_environment.rb +27 -0
  26. data/lib/pact_broker/client/environments/describe_environment.rb +26 -0
  27. data/lib/pact_broker/client/environments/environment_command.rb +66 -0
  28. data/lib/pact_broker/client/environments/list_environments.rb +30 -0
  29. data/lib/pact_broker/client/environments/text_formatter.rb +30 -0
  30. data/lib/pact_broker/client/environments/update_environment.rb +31 -0
  31. data/lib/pact_broker/client/generate_display_name.rb +27 -0
  32. data/lib/pact_broker/client/hal/entity.rb +31 -6
  33. data/lib/pact_broker/client/hal/http_client.rb +8 -2
  34. data/lib/pact_broker/client/hal/link.rb +8 -0
  35. data/lib/pact_broker/client/hal_client_methods.rb +1 -3
  36. data/lib/pact_broker/client/matrix/text_formatter.rb +21 -13
  37. data/lib/pact_broker/client/pacticipants.rb +6 -0
  38. data/lib/pact_broker/client/pacticipants/create.rb +24 -34
  39. data/lib/pact_broker/client/pacticipants/describe.rb +33 -0
  40. data/lib/pact_broker/client/pacticipants/list.rb +34 -0
  41. data/lib/pact_broker/client/pacticipants/text_formatter.rb +41 -0
  42. data/lib/pact_broker/client/string_refinements.rb +56 -0
  43. data/lib/pact_broker/client/version.rb +1 -1
  44. data/lib/pact_broker/client/versions.rb +4 -1
  45. data/lib/pact_broker/client/versions/describe.rb +3 -1
  46. data/lib/pact_broker/client/versions/formatter.rb +3 -1
  47. data/lib/pact_broker/client/versions/json_formatter.rb +5 -3
  48. data/lib/pact_broker/client/versions/text_formatter.rb +3 -1
  49. data/lib/pact_broker/client/webhooks/create.rb +14 -8
  50. data/pact-broker-client.gemspec +1 -0
  51. data/script/record-deployments-and-releases.sh +18 -0
  52. data/script/webhook-commands.sh +12 -0
  53. data/spec/fixtures/approvals/can_i_deploy_failure_dry_run.approved.txt +7 -0
  54. data/spec/fixtures/approvals/can_i_deploy_success_dry_run.approved.txt +7 -0
  55. data/spec/fixtures/approvals/describe_environment.approved.txt +7 -0
  56. data/spec/fixtures/approvals/describe_pacticipant.approved.txt +2 -0
  57. data/spec/fixtures/approvals/list_environments.approved.txt +3 -0
  58. data/spec/integration/describe_environment_spec.rb +31 -0
  59. data/spec/lib/pact_broker/client/can_i_deploy_spec.rb +62 -2
  60. data/spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb +17 -4
  61. data/spec/lib/pact_broker/client/cli/broker_publish_spec.rb +1 -1
  62. data/spec/lib/pact_broker/client/cli/broker_run_webhook_commands_spec.rb +7 -5
  63. data/spec/lib/pact_broker/client/deployments/record_deployment_spec.rb +204 -0
  64. data/spec/lib/pact_broker/client/deployments/record_support_ended_spec.rb +208 -0
  65. data/spec/lib/pact_broker/client/deployments/record_undeployment_spec.rb +219 -0
  66. data/spec/lib/pact_broker/client/environments/delete_environment_spec.rb +120 -0
  67. data/spec/lib/pact_broker/client/environments/describe_environment_spec.rb +89 -0
  68. data/spec/lib/pact_broker/client/environments/update_environment_spec.rb +167 -0
  69. data/spec/lib/pact_broker/client/generate_display_name_spec.rb +39 -0
  70. data/spec/lib/pact_broker/client/hal/entity_spec.rb +2 -2
  71. data/spec/lib/pact_broker/client/pacticipants/create_spec.rb +2 -2
  72. data/spec/pacts/pact_broker_client-pact_broker.json +88 -108
  73. data/spec/pacts/pact_broker_client-pactflow.json +118 -0
  74. data/spec/service_providers/create_environment_spec.rb +78 -0
  75. data/spec/service_providers/list_environments_spec.rb +77 -0
  76. data/spec/service_providers/pact_broker_client_matrix_ignore_spec.rb +1 -1
  77. data/spec/service_providers/pact_broker_client_register_repository_spec.rb +2 -2
  78. data/spec/service_providers/pact_helper.rb +15 -10
  79. data/spec/service_providers/pactflow_webhooks_create_spec.rb +86 -0
  80. data/spec/service_providers/pacticipants_create_spec.rb +5 -4
  81. data/spec/service_providers/publish_pacts_spec.rb +3 -1
  82. data/spec/service_providers/record_deployment_spec.rb +14 -32
  83. data/spec/service_providers/record_release_spec.rb +132 -0
  84. data/spec/service_providers/record_undeployment_spec.rb +166 -0
  85. data/spec/service_providers/webhooks_create_spec.rb +1 -1
  86. data/spec/spec_helper.rb +15 -2
  87. data/spec/support/approvals.rb +1 -1
  88. data/spec/support/shared_context.rb +2 -1
  89. data/tasks/pact.rake +21 -1
  90. metadata +82 -7
  91. data/lib/pact_broker/client/versions/record_deployment.rb +0 -109
  92. data/lib/pact_broker/client/versions/record_undeployment.rb +0 -102
  93. data/spec/lib/pact_broker/client/versions/record_deployment_spec.rb +0 -82
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b929ba48b8f21f7cafeb339e925fac9ecf7a4a83cd3392f5170c769c725998c3
4
- data.tar.gz: 1b50eef690671dfdf9a78f1bb8da0f2f1e58cf380b199a554b5a9e770d40a825
3
+ metadata.gz: fde8c782e40832e6e989a59a78e0bdedf62d117ceb4e44d322fe38e3911ff714
4
+ data.tar.gz: be91210f775ccf15d2bf49a2cecf3aebf1fc68133b87b5343224d75153b28254
5
5
  SHA512:
6
- metadata.gz: e527702e1d7d9cc3644f3c4db48c7e02060435699b0104f9048ab6142228475405fac9abea025c713bbf8a3a15b71660a56973515b72464814ff8dee62518289
7
- data.tar.gz: 0b81d80a4ab02de7f7d71a7e5c991a6e322731c1803c7c85fd0b53379d92f4739e3296c0acd76cf528567b14147fb3743c352322104da46e4064116bc531514b
6
+ metadata.gz: 31ec264efd314d6cc03059f2eddfc5f0a842055e79c3d68fcbe20896619b6469aad06aa57e26c60585727d94443d7f5fd6e11626c14775e0dadb7fba63afbbe8
7
+ data.tar.gz: 1b78604dfa9f2860523432eea37d4943b7f222b685238ca60d0a8605e87afd42398f02568ddfd35ee330e3b055738db07a3331e800bc4ef839e63a1e2f6c26e5
@@ -21,3 +21,24 @@ jobs:
21
21
  ruby-version: ${{ matrix.ruby_version }}
22
22
  - run: "bundle install"
23
23
  - run: "bundle exec rake"
24
+ pact:
25
+ runs-on: "ubuntu-latest"
26
+ continue-on-error: true
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ feature: ["", "publish_contracts", "deployments"]
31
+ steps:
32
+ - uses: actions/checkout@v2
33
+ - uses: ruby/setup-ruby@v1
34
+ with:
35
+ ruby-version: "2.7"
36
+ - run: "bundle install"
37
+ - run: |
38
+ rm -rf spec/pacts/*
39
+ bundle exec rspec spec/service_providers/
40
+ bundle exec rake pact:publish:pactflow
41
+ env:
42
+ PACT_BROKER_TOKEN: ${{ secrets.PACTFLOW_PACT_OSS_TOKEN }}
43
+ PACT_BROKER_FEATURES: ${{ matrix.feature }}
44
+ TEST_FEATURE: ${{ matrix.feature }}
data/CHANGELOG.md CHANGED
@@ -1,3 +1,60 @@
1
+ <a name="v1.46.0"></a>
2
+ ### v1.46.0 (2021-06-24)
3
+
4
+ #### Features
5
+
6
+ * support specifying team UUID when creating a webhook in Pactflow ([c4201e1](/../../commit/c4201e1))
7
+
8
+ <a name="v1.45.0"></a>
9
+ ### v1.45.0 (2021-06-16)
10
+
11
+ #### Features
12
+
13
+ * **can-i-deploy**
14
+ * allow dry-run to be enabled by setting ACT_BROKER_CAN_I_DEPLOY_DRY_RUN=true ([0562436](/../../commit/0562436))
15
+ * add --dry-run option ([9d90c79](/../../commit/9d90c79))
16
+
17
+ * add record-support-ended (feature toggled off) ([8f6b593](/../../commit/8f6b593))
18
+ * update record-undeployment (feature toggled off) ([0c0dd15](/../../commit/0c0dd15))
19
+ * update record-undeployment (feature toggled off) ([93046d5](/../../commit/93046d5))
20
+
21
+ <a name="v1.44.0"></a>
22
+ ### v1.44.0 (2021-06-09)
23
+
24
+ #### Features
25
+
26
+ * add record-undeployment (feature toggled off) ([951d334](/../../commit/951d334))
27
+ * add describe-environment command ([cd11ebb](/../../commit/cd11ebb))
28
+ * add record-release (feature toggled off) ([e32e4e5](/../../commit/e32e4e5))
29
+
30
+ #### Bug Fixes
31
+
32
+ * hardcode file requires Fixes: https://github.com/pact-foundation/pact_broker-client/issues/88 ([581f2fd](/../../commit/581f2fd))
33
+
34
+ <a name="v1.43.0"></a>
35
+ ### v1.43.0 (2021-06-03)
36
+
37
+ #### Features
38
+
39
+ * enable --ignore option for can-i-deploy without a feature toggle ([bcc9dfe](/../../commit/bcc9dfe))
40
+
41
+ <a name="v1.42.0"></a>
42
+ ### v1.42.0 (2021-05-31)
43
+
44
+ #### Features
45
+
46
+ * add list-pacticipants ([fc8ce3b](/../../commit/fc8ce3b))
47
+ * add --display-name to create-or-update-pacticipant ([76f323b](/../../commit/76f323b))
48
+ * add backtrace to error output when verbose is true ([abf1ef0](/../../commit/abf1ef0))
49
+ * add list-environments and describe-environment ([4472d48](/../../commit/4472d48))
50
+ * add delete-environment ([361eed1](/../../commit/361eed1))
51
+ * add update-environment command ([95276cd](/../../commit/95276cd))
52
+ * add create-environment command ([a9fab50](/../../commit/a9fab50))
53
+
54
+ #### Bug Fixes
55
+
56
+ * stop long values in columns from being truncated ([18063fd](/../../commit/18063fd))
57
+
1
58
  <a name="v1.41.0"></a>
2
59
  ### v1.41.0 (2021-05-25)
3
60
 
data/README.md CHANGED
@@ -78,28 +78,45 @@ Usage:
78
78
  pact-broker can-i-deploy -a, --pacticipant=PACTICIPANT -b, --broker-base-url=BROKER_BASE_URL
79
79
 
80
80
  Options:
81
- -a, --pacticipant=PACTICIPANT # The pacticipant name. Use once for each pacticipant being checked.
82
- -e, [--version=VERSION] # The pacticipant version. Must be entered after the --pacticipant that it relates to.
83
- -l, [--latest=[TAG]] # Use the latest pacticipant version. Optionally specify a TAG to use the latest version with the specified tag.
84
- [--to=TAG] # This is too hard to explain in a short sentence. Look at the examples.
85
- -b, --broker-base-url=BROKER_BASE_URL # The base URL of the Pact Broker
86
- -u, [--broker-username=BROKER_USERNAME] # Pact Broker basic auth username
87
- -p, [--broker-password=BROKER_PASSWORD] # Pact Broker basic auth password
88
- -k, [--broker-token=BROKER_TOKEN] # Pact Broker bearer token
89
- -o, [--output=OUTPUT] # json or table
90
- # Default: table
91
- -v, [--verbose], [--no-verbose] # Verbose output. Default: false
92
- [--retry-while-unknown=TIMES] # The number of times to retry while there is an unknown verification result (ie. the provider verification is likely still running)
93
- # Default: 0
94
- [--retry-interval=SECONDS] # The time between retries in seconds. Use in conjuction with --retry-while-unknown
95
- # Default: 10
96
-
97
- Description:
98
- Returns exit code 0 or 1, indicating whether or not the specified pacticipant versions are compatible. Prints out the relevant
99
- pact/verification details.
100
-
101
- The environment variables PACT_BROKER_BASE_URL, PACT_BROKER_BASE_URL_USERNAME and PACT_BROKER_BASE_URL_PASSWORD may be used
102
- instead of their respective command line options.
81
+ -a, --pacticipant=PACTICIPANT
82
+ # The pacticipant name. Use once for each pacticipant being checked.
83
+ -e, [--version=VERSION]
84
+ # The pacticipant version. Must be entered after the --pacticipant that it relates to.
85
+ [--ignore=IGNORE]
86
+ # The pacticipant name to ignore. Use once for each pacticipant being ignored.
87
+ A specific version can be ignored by also specifying a --version after the
88
+ pacticipant name option.
89
+ -l, [--latest=[TAG]]
90
+ # Use the latest pacticipant version. Optionally specify a TAG to use the
91
+ latest version with the specified tag.
92
+ [--to=TAG]
93
+ # This is too hard to explain in a short sentence. Look at the examples.
94
+ -o, [--output=OUTPUT]
95
+ # json or table
96
+
97
+ # Default: table
98
+ [--retry-while-unknown=TIMES]
99
+ # The number of times to retry while there is an unknown verification result
100
+ (ie. the provider verification is likely still running)
101
+
102
+ # Default: 0
103
+ [--retry-interval=SECONDS]
104
+ # The time between retries in seconds. Use in conjuction with --retry-while-unknown
105
+
106
+ # Default: 10
107
+ [--dry-run], [--no-dry-run]
108
+ # When enabled, always exits process with a success code. Can also be enabled by setting
109
+ the environment variable PACT_BROKER_CAN_I_DEPLOY_DRY_RUN=true.
110
+ -b, --broker-base-url=BROKER_BASE_URL
111
+ # The base URL of the Pact Broker
112
+ -u, [--broker-username=BROKER_USERNAME]
113
+ # Pact Broker basic auth username
114
+ -p, [--broker-password=BROKER_PASSWORD]
115
+ # Pact Broker basic auth password
116
+ -k, [--broker-token=BROKER_TOKEN]
117
+ # Pact Broker bearer token
118
+ -v, [--verbose], [--no-verbose]
119
+ # Verbose output. Default: false
103
120
  ```
104
121
 
105
122
  Returns exit code 0 or 1, indicating whether or not the specified application (pacticipant) versions are compatible (ie. safe to deploy). Prints out the relevant pact/verification details, indicating any missing or failed verification results.
@@ -218,27 +235,19 @@ Usage:
218
235
 
219
236
  Options:
220
237
  -X, --request=METHOD
221
- # HTTP method
238
+ # Webhook HTTP method
222
239
  -H, [--header=one two three]
223
- # Header
240
+ # Webhook Header
224
241
  -d, [--data=DATA]
225
- # Data
242
+ # Webhook payload (file or string)
226
243
  -u, [--user=USER]
227
- # Basic auth username and password eg. username:password
244
+ # Webhook basic auth username and password eg. username:password
228
245
  [--consumer=CONSUMER]
229
246
  # Consumer name
230
247
  [--provider=PROVIDER]
231
248
  # Provider name
232
- -b, --broker-base-url=BROKER_BASE_URL
233
- # The base URL of the Pact Broker
234
- [--broker-username=BROKER_USERNAME]
235
- # Pact Broker basic auth username
236
- -p, [--broker-password=BROKER_PASSWORD]
237
- # Pact Broker basic auth password
238
- -k, [--broker-token=BROKER_TOKEN]
239
- # Pact Broker bearer token
240
249
  [--description=DESCRIPTION]
241
- # The description of the webhook
250
+ # Webhook description
242
251
  [--contract-content-changed], [--no-contract-content-changed]
243
252
  # Trigger this webhook when the pact content changes
244
253
  [--contract-published], [--no-contract-published]
@@ -249,6 +258,16 @@ Options:
249
258
  # Trigger this webhook when a failed provider verification result is published
250
259
  [--provider-verification-succeeded], [--no-provider-verification-succeeded]
251
260
  # Trigger this webhook when a successful provider verification result is published
261
+ [--team-uuid=UUID]
262
+ # UUID of the Pactflow team to which the webhook should be assigned (Pactflow only)
263
+ -b, --broker-base-url=BROKER_BASE_URL
264
+ # The base URL of the Pact Broker
265
+ -u, [--broker-username=BROKER_USERNAME]
266
+ # Pact Broker basic auth username
267
+ -p, [--broker-password=BROKER_PASSWORD]
268
+ # Pact Broker basic auth password
269
+ -k, [--broker-token=BROKER_TOKEN]
270
+ # Pact Broker bearer token
252
271
  -v, [--verbose], [--no-verbose]
253
272
  # Verbose output. Default: false
254
273
 
@@ -266,27 +285,19 @@ Usage:
266
285
 
267
286
  Options:
268
287
  -X, --request=METHOD
269
- # HTTP method
288
+ # Webhook HTTP method
270
289
  -H, [--header=one two three]
271
- # Header
290
+ # Webhook Header
272
291
  -d, [--data=DATA]
273
- # Data
292
+ # Webhook payload (file or string)
274
293
  -u, [--user=USER]
275
- # Basic auth username and password eg. username:password
294
+ # Webhook basic auth username and password eg. username:password
276
295
  [--consumer=CONSUMER]
277
296
  # Consumer name
278
297
  [--provider=PROVIDER]
279
298
  # Provider name
280
- -b, --broker-base-url=BROKER_BASE_URL
281
- # The base URL of the Pact Broker
282
- [--broker-username=BROKER_USERNAME]
283
- # Pact Broker basic auth username
284
- -p, [--broker-password=BROKER_PASSWORD]
285
- # Pact Broker basic auth password
286
- -k, [--broker-token=BROKER_TOKEN]
287
- # Pact Broker bearer token
288
299
  [--description=DESCRIPTION]
289
- # The description of the webhook
300
+ # Webhook description
290
301
  [--contract-content-changed], [--no-contract-content-changed]
291
302
  # Trigger this webhook when the pact content changes
292
303
  [--contract-published], [--no-contract-published]
@@ -297,6 +308,16 @@ Options:
297
308
  # Trigger this webhook when a failed provider verification result is published
298
309
  [--provider-verification-succeeded], [--no-provider-verification-succeeded]
299
310
  # Trigger this webhook when a successful provider verification result is published
311
+ [--team-uuid=UUID]
312
+ # UUID of the Pactflow team to which the webhook should be assigned (Pactflow only)
313
+ -b, --broker-base-url=BROKER_BASE_URL
314
+ # The base URL of the Pact Broker
315
+ -u, [--broker-username=BROKER_USERNAME]
316
+ # Pact Broker basic auth username
317
+ -p, [--broker-password=BROKER_PASSWORD]
318
+ # Pact Broker basic auth password
319
+ -k, [--broker-token=BROKER_TOKEN]
320
+ # Pact Broker bearer token
300
321
  -v, [--verbose], [--no-verbose]
301
322
  # Verbose output. Default: false
302
323
  --uuid=UUID
@@ -30,8 +30,6 @@
30
30
 
31
31
  * [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
32
32
 
33
- * [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
34
-
35
33
  * [A request for the index resource with the webhook relation](#a_request_for_the_index_resource_with_the_webhook_relation)
36
34
 
37
35
  * [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
@@ -66,6 +64,8 @@
66
64
 
67
65
  * [A request to create a webhook with every possible event type](#a_request_to_create_a_webhook_with_every_possible_event_type_given_the_&#39;Pricing_Service&#39;_and_&#39;Condor&#39;_already_exist_in_the_pact-broker) given the 'Pricing Service' and 'Condor' already exist in the pact-broker
68
66
 
67
+ * [A request to determine if Bar can be deployed with all Foo tagged prod, ignoring the verification for Foo version 3.4.5](#a_request_to_determine_if_Bar_can_be_deployed_with_all_Foo_tagged_prod,_ignoring_the_verification_for_Foo_version_3.4.5_given_provider_Bar_version_4.5.6_has_a_successful_verification_for_Foo_version_1.2.3_tagged_prod_and_a_failed_verification_for_version_3.4.5_tagged_prod) given provider Bar version 4.5.6 has a successful verification for Foo version 1.2.3 tagged prod and a failed verification for version 3.4.5 tagged prod
68
+
69
69
  * [A request to get the Pricing Service](#a_request_to_get_the_Pricing_Service_given_the_&#39;Pricing_Service&#39;_already_exists_in_the_pact-broker) given the 'Pricing Service' already exists in the pact-broker
70
70
 
71
71
  * [A request to get the Pricing Service](#a_request_to_get_the_Pricing_Service_given_the_&#39;Pricing_Service&#39;_does_not_exist_in_the_pact-broker) given the 'Pricing Service' does not exist in the pact-broker
@@ -84,8 +84,6 @@
84
84
 
85
85
  * [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
86
86
 
87
- * [A request to publish contracts](#a_request_to_publish_contracts)
88
-
89
87
  * [A request to register the repository URL of a pacticipant](#a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_&#39;Pricing_Service&#39;_already_exists_in_the_pact-broker) given the 'Pricing Service' already exists in the pact-broker
90
88
 
91
89
  * [A request to register the repository URL of a pacticipant](#a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_&#39;Pricing_Service&#39;_does_not_exist_in_the_pact-broker) given the 'Pricing Service' does not exist in the pact-broker
@@ -683,33 +681,6 @@ Pact Broker will respond with:
683
681
  }
684
682
  }
685
683
  ```
686
- <a name="a_request_for_the_index_resource_given_the_pb:publish-contracts_relations_exists_in_the_index_resource"></a>
687
- Given **the pb:publish-contracts relations exists in the index resource**, upon receiving **a request for the index resource** from Pact Broker Client, with
688
- ```json
689
- {
690
- "method": "GET",
691
- "path": "/",
692
- "headers": {
693
- "Accept": "application/hal+json"
694
- }
695
- }
696
- ```
697
- Pact Broker will respond with:
698
- ```json
699
- {
700
- "status": 200,
701
- "headers": {
702
- "Content-Type": "application/hal+json;charset=utf-8"
703
- },
704
- "body": {
705
- "_links": {
706
- "pb:publish-contracts": {
707
- "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS"
708
- }
709
- }
710
- }
711
- }
712
- ```
713
684
  <a name="a_request_for_the_index_resource_with_the_webhook_relation"></a>
714
685
  Upon receiving **a request for the index resource with the webhook relation** from Pact Broker Client, with
715
686
  ```json
@@ -1454,6 +1425,83 @@ Pact Broker will respond with:
1454
1425
  }
1455
1426
  }
1456
1427
  ```
1428
+ <a name="a_request_to_determine_if_Bar_can_be_deployed_with_all_Foo_tagged_prod,_ignoring_the_verification_for_Foo_version_3.4.5_given_provider_Bar_version_4.5.6_has_a_successful_verification_for_Foo_version_1.2.3_tagged_prod_and_a_failed_verification_for_version_3.4.5_tagged_prod"></a>
1429
+ Given **provider Bar version 4.5.6 has a successful verification for Foo version 1.2.3 tagged prod and a failed verification for version 3.4.5 tagged prod**, upon receiving **a request to determine if Bar can be deployed with all Foo tagged prod, ignoring the verification for Foo version 3.4.5** from Pact Broker Client, with
1430
+ ```json
1431
+ {
1432
+ "method": "get",
1433
+ "path": "/matrix",
1434
+ "query": "q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Bversion%5D=4.5.6&q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Btag%5D=prod&latestby=cvpv&ignore%5B%5D%5Bpacticipant%5D=Foo&ignore%5B%5D%5Bversion%5D=3.4.5"
1435
+ }
1436
+ ```
1437
+ Pact Broker will respond with:
1438
+ ```json
1439
+ {
1440
+ "status": 200,
1441
+ "headers": {
1442
+ "Content-Type": "application/hal+json;charset=utf-8"
1443
+ },
1444
+ "body": {
1445
+ "summary": {
1446
+ "deployable": true,
1447
+ "ignored": 1
1448
+ },
1449
+ "notices": [
1450
+ {
1451
+ "text": "some notice",
1452
+ "type": "info"
1453
+ }
1454
+ ],
1455
+ "matrix": [
1456
+ {
1457
+ "consumer": {
1458
+ "name": "Foo",
1459
+ "version": {
1460
+ "number": "1.2.3"
1461
+ }
1462
+ },
1463
+ "provider": {
1464
+ "name": "Bar",
1465
+ "version": {
1466
+ "number": "4.5.6"
1467
+ }
1468
+ },
1469
+ "verificationResult": {
1470
+ "success": true,
1471
+ "_links": {
1472
+ "self": {
1473
+ "href": "http://result"
1474
+ }
1475
+ }
1476
+ }
1477
+ },
1478
+ {
1479
+ "consumer": {
1480
+ "name": "Foo",
1481
+ "version": {
1482
+ "number": "3.4.5"
1483
+ }
1484
+ },
1485
+ "provider": {
1486
+ "name": "Bar",
1487
+ "version": {
1488
+ "number": "4.5.6"
1489
+ }
1490
+ },
1491
+ "verificationResult": {
1492
+ "success": false,
1493
+ "_links": {
1494
+ "self": {
1495
+ "href": "http://result"
1496
+ }
1497
+ }
1498
+ },
1499
+ "ignored": true
1500
+ }
1501
+ ]
1502
+ }
1503
+ }
1504
+ ```
1457
1505
  <a name="a_request_to_get_the_Pricing_Service_given_the_&#39;Pricing_Service&#39;_already_exists_in_the_pact-broker"></a>
1458
1506
  Given **the 'Pricing Service' already exists in the pact-broker**, upon receiving **a request to get the Pricing Service** from Pact Broker Client, with
1459
1507
  ```json
@@ -1806,76 +1854,6 @@ Pact Broker will respond with:
1806
1854
  }
1807
1855
  }
1808
1856
  ```
1809
- <a name="a_request_to_publish_contracts"></a>
1810
- Upon receiving **a request to publish contracts** from Pact Broker Client, with
1811
- ```json
1812
- {
1813
- "method": "POST",
1814
- "path": "/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS",
1815
- "headers": {
1816
- "Content-Type": "application/json",
1817
- "Accept": "application/hal+json"
1818
- },
1819
- "body": {
1820
- "pacticipantName": "Foo",
1821
- "pacticipantVersionNumber": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
1822
- "branch": "main",
1823
- "tags": [
1824
- "dev"
1825
- ],
1826
- "buildUrl": "http://build",
1827
- "contracts": [
1828
- {
1829
- "consumerName": "Foo",
1830
- "providerName": "Bar",
1831
- "specification": "pact",
1832
- "contentType": "application/json",
1833
- "content": "eyJjb25zdW1lciI6eyJuYW1lIjoiRm9vIn0sInByb3ZpZGVyIjp7Im5hbWUiOiJCYXIifSwiaW50ZXJhY3Rpb25zIjpbeyJkZXNjcmlwdGlvbiI6ImFuIGV4YW1wbGUgcmVxdWVzdCIsInByb3ZpZGVyU3RhdGUiOiJhIHByb3ZpZGVyIHN0YXRlIiwicmVxdWVzdCI6eyJtZXRob2QiOiJHRVQiLCJwYXRoIjoiLyIsImhlYWRlcnMiOnt9fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImhlYWRlcnMiOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vaGFsK2pzb24ifX19XSwibWV0YWRhdGEiOnsicGFjdFNwZWNpZmljYXRpb24iOnsidmVyc2lvbiI6IjIuMC4wIn19fQ==",
1834
- "writeMode": "overwrite",
1835
- "onConflict": "overwrite"
1836
- }
1837
- ]
1838
- }
1839
- }
1840
- ```
1841
- Pact Broker will respond with:
1842
- ```json
1843
- {
1844
- "status": 200,
1845
- "headers": {
1846
- "Content-Type": "application/hal+json;charset=utf-8"
1847
- },
1848
- "body": {
1849
- "_embedded": {
1850
- "pacticipant": {
1851
- "name": "Foo"
1852
- },
1853
- "version": {
1854
- "number": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30",
1855
- "buildUrl": "http://build"
1856
- }
1857
- },
1858
- "logs": [
1859
- {
1860
- "level": "info",
1861
- "message": "some message"
1862
- }
1863
- ],
1864
- "_links": {
1865
- "pb:pacticipant-version-tags": [
1866
- {
1867
- "name": "dev"
1868
- }
1869
- ],
1870
- "pb:contracts": [
1871
- {
1872
- "href": "http://some-pact"
1873
- }
1874
- ]
1875
- }
1876
- }
1877
- }
1878
- ```
1879
1857
  <a name="a_request_to_register_the_repository_URL_of_a_pacticipant_given_the_&#39;Pricing_Service&#39;_already_exists_in_the_pact-broker"></a>
1880
1858
  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
1881
1859
  ```json
@@ -2286,7 +2264,6 @@ Given **the 'Pricing Service' and 'Condor' already exist in the pact-broker**, u
2286
2264
  }
2287
2265
  ],
2288
2266
  "request": {
2289
- "url": null,
2290
2267
  "method": "POST",
2291
2268
  "headers": {
2292
2269
  "Foo": "bar",