doc/pacts/markdown/Pact Broker Client - Pact Broker
A pact between Pact Broker Client and Pact Broker
Requests from Pact Broker Client to Pact Broker
A request for a pacticipant version given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with 2 environments that aren’t test available for deployment
A request for a pacticipant version given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment
A request for a pacticipant version given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for release
A request for an environment given an environment with name test and UUID 16926ef3-590f-4e3f-838e-719717aa88c9 exists
A request for the compatibility matrix for a pacticipant that does not exist
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
A request for the compatibility matrix for Foo version 1.2.3 and Bar version 4.5.6 given the pact for Foo Thing version 1.2.3 has been verified by Bar version 4.5.6
A request for the compatibility matrix for Foo version 1.2.3 and Bar version 4.5.6 given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6
A request for the compatibility matrix for Foo version 1.2.3 and the latest prod version of Bar given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6 with tag prod, and 1.2.4 unsuccessfully by 9.9.9
A request for the compatibility matrix for Foo version 1.2.3 and the latest prod versions of all other pacticipants given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6 (tagged prod) and version 5.6.7
A request for the compatibility matrix for Foo version 1.2.3 and the latest version of Bar given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6, and 1.2.4 unsuccessfully by 9.9.9
A request for the compatibility matrix where one or more versions does not exist given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6
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
A request for the environments given an environment with name test exists
A request for the index resource given the pacticipant relations are present
A request for the index resource given the pb:latest-tagged-version relation exists in the index resource
A request for the index resource given the pb:latest-version relation exists in the index resource
A request for the index resource given the pb:pacticipant-branch relation exists in the index resource
A request for the index resource given the pb:pacticipant-version and pb:environments relations exist in the index resource
A request for the index resource given the pb:publish-contracts relations exists in the index resource
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
A request for the list of the latest prod pacts from all consumers for the Pricing Service’ given tagged as prod pact between Condor and the Pricing Service exists
A request for the successful rows of the compatibility matrix for all versions of Foo and Bar given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6, and 1.2.4 unsuccessfully by 9.9.9
A request retrieve a pact for a specific version given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, and Condor already has a pact published for version 1.3.0
A request to create a webhook for a consumer and provider given ‘Condor’ does not exist in the pact-broker
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
A request to create a webhook with a JSON body for a consumer given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
A request to create a webhook with a JSON body for a consumer and provider given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
A request to create a webhook with a JSON body for a consumer specified by a label
A request to create a webhook with a JSON body for a consumer that does not exist
A request to create a webhook with a JSON body for a provider given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
A request to create a webhook with a JSON body for a provider specified by a label
A request to create a webhook with a non-JSON body for a consumer and provider given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
A request to create a webhook with every possible event type given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
A request to delete a pacticipant branch given a branch named main exists for pacticipant Foo
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 request to get the Pricing Service given the ‘Pricing Service’ already exists in the pact-broker
A request to get the Pricing Service given the ‘Pricing Service’ does not exist in the pact-broker
A request to list pacticipants given ‘Condor’ exists in the pact-broker
A request to list the latest pacts given a pact between Condor and the Pricing Service exists
A request to list the versions deployed to an environment for a pacticipant name and application instance given an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1
A request to mark a deployed version as not currently deploye given a currently deployed version exists
A request to publish a pact given ‘Condor’ already exist in the pact-broker, but the ‘Pricing Service’ does not
A request to publish a pact given the ‘Pricing Service’ already exists in the pact-broker
A request to publish a pact given an error occurs while publishing a pact
A request to publish a pact with method patch given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, and Condor already has a pact published for version 1.3.0
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
A request to record a deployment given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment
A request to record a release given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment
A request to register the repository URL of a pacticipant given the ‘Pricing Service’ already exists in the pact-broker
A request to register the repository URL of a pacticipant given the ‘Pricing Service’ does not exist in the pact-broker
A request to retrieve a pacticipant given a pacticipant with name Foo exists
A request to retrieve the latest ‘production’ version of Condor given ‘Condor’ exists in the pact-broker with the latest tagged ‘production’ version 1.2.3
A request to retrieve the latest pact between Condor and the Pricing Service given a pact between Condor and the Pricing Service exists
A request to retrieve the latest pact between Condor and the Pricing Service given no pact between Condor and the Pricing Service exists
A request to retrieve the latest version of Condor given ‘Condor’ exists in the pact-broker with the latest version 1.2.3
A request to retrieve the pact between the production verison of Condor and the Pricing Service given a pact between Condor and the Pricing Service exists for the production version of Condor
A request to tag the production version of Condor given ‘Condor’ exists in the pact-broker with version 1.3.0, tagged with ‘prod’
A request to tag the production version of Condor given ‘Condor’ does not exist in the pact-broker
A request to tag the production version of Condor given ‘Condor’ exists in the pact-broker
A request to update a pacticipant given a pacticipant with name Foo exists
A request to update a webhook given a webhook with the uuid 696c5f93-1b7f-44bc-8d03-59440fcaa9a0 exists
An invalid request to create a webhook for a consumer and provider given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker
Interactions
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
{ "method": "GET", "path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:record-deployment": [ { "name": "prod", "href": "href" }, { "name": "dev", "href": "href" } ] } } }
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
{ "method": "GET", "path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:record-deployment": [ { "name": "test", "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-RECORD-DEPLOYMENT-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST" } ] } } }
Given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for release, upon receiving a request for a pacticipant version from Pact Broker Client, with
{ "method": "GET", "path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-Foo-5556b8149bf8bac76bc30f50a8a2dd4c22c85f30", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:record-release": [ { "name": "test", "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-RECORD-RELEASE-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST" } ] } } }
Given an environment with name test and UUID 16926ef3-590f-4e3f-838e-719717aa88c9 exists, upon receiving a request for an environment from Pact Broker Client, with
{ "method": "GET", "path": "/HAL-REL-PLACEHOLDER-PB-ENVIRONMENT-16926ef3-590f-4e3f-838e-719717aa88c9", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:currently-deployed-deployed-versions": { "href": "http://localhost:1234/PLACEHOLDER-ENVIRONMENT-CURRENTLY-DEPLOYED-16926ef3-590f-4e3f-838e-719717aa88c9" } } } }
Upon receiving a request for the compatibility matrix for a pacticipant that does not exist from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Wiffle&q%5B%5D%5Bversion%5D=1.2.3&q%5B%5D%5Bpacticipant%5D=Meep&q%5B%5D%5Bversion%5D=9.9.9&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 400, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "errors": [ "an error message" ] } }
Given the pact for Foo version 1.2.3 and 1.2.4 has been verified by Bar version 4.5.6, upon receiving a request for the compatibility matrix for all versions of Foo and Bar from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bpacticipant%5D=Bar&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } }, { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the pact for Foo Thing version 1.2.3 has been verified by Bar version 4.5.6, upon receiving a request for the compatibility matrix for Foo version 1.2.3 and Bar version 4.5.6 from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo%20Thing&q%5B%5D%5Bversion%5D=1.2.3&q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Bversion%5D=4.5.6&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6, upon receiving a request for the compatibility matrix for Foo version 1.2.3 and Bar version 4.5.6 from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.3&q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Bversion%5D=4.5.6&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6 with tag prod, and 1.2.4 unsuccessfully by 9.9.9, upon receiving a request for the compatibility matrix for Foo version 1.2.3 and the latest prod version of Bar from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.3&q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Blatest%5D=true&q%5B%5D%5Btag%5D=prod&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6 (tagged prod) and version 5.6.7, upon receiving a request for the compatibility matrix for Foo version 1.2.3 and the latest prod versions of all other pacticipants from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.3&latestby=cvp&latest=true&tag=prod" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "1.2.3" } }, "provider": { "name": "Bar", "version": { "number": "4.5.6" } } } ] } }
Given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6, and 1.2.4 unsuccessfully by 9.9.9, upon receiving a request for the compatibility matrix for Foo version 1.2.3 and the latest version of Bar from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.4&q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Blatest%5D=true&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6, upon receiving a request for the compatibility matrix where one or more versions does not exist from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.3&q%5B%5D%5Bpacticipant%5D=Bar&q%5B%5D%5Bversion%5D=9.9.9&latestby=cvpv" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "reason": "an error message" } } }
Given the pact for Foo version 1.2.3 has been verified by Bar version 4.5.6 and version 5.6.7, upon receiving a request for the compatibility matrix where only the version of Foo is specified from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bversion%5D=1.2.3&latestby=cvp&latest=true" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given an environment with name test exists, upon receiving a request for the environments from Pact Broker Client, with
{ "method": "GET", "path": "/HAL-REL-PLACEHOLDER-PB-ENVIRONMENTS", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:environments": [ { "name": "test", "href": "href" } ] } } }
Upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "get", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:webhooks": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-WEBHOOKS" }, "pb:pacticipants": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PACTICIPANTS" }, "pb:pacticipant": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-{pacticipant}" } } } }
Given the pacticipant relations are present, upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "get", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:pacticipants": { "href": "http://localhost:1234/pacticipants" }, "pb:pacticipant": { "href": "http://localhost:1234/pacticipants/{pacticipant}" } } } }
Given the pb:latest-tagged-version relation exists in the index resource, upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "get", "path": "/", "headers": { "Accept": "application/hal+json, application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-tagged-version": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-TAGGED-VERSION-{pacticipant}-{tag}" } } } }
Given the pb:latest-version relation exists in the index resource, upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "get", "path": "/", "headers": { "Accept": "application/hal+json, application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-version": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-VERSION-{pacticipant}" } } } }
Given the pb:pacticipant-branch relation exists in the index resource, upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "GET", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:pacticipant-branch": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-BRANCH-{pacticipant}-{branch}" } } } }
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
{ "method": "GET", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:pacticipant-version": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-VERSION-{pacticipant}-{version}" }, "pb:environments": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-ENVIRONMENTS" } } } }
Given the pb:publish-contracts relations exists in the index resource, upon receiving a request for the index resource from Pact Broker Client, with
{ "method": "GET", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:publish-contracts": { "href": "http://localhost:1234/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS" } } } }
Upon receiving a request for the index resource with the webhook relation from Pact Broker Client, with
{ "method": "get", "path": "/", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:webhook": { "href": "http://localhost:1234/webhooks/{uuid}", "templated": true } } } }
Given a latest pact between Condor and the Pricing Service exists, upon receiving a request for the list of the latest pacts from all consumers for the Pricing Service’ from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/latest" }
Pact Broker will respond with:
{ "status": 200, "body": { "_links": { "provider": { "href": "http://example.org/pacticipants/Pricing%20Service", "title": "Pricing Service" }, "pb:pacts": [ { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "title": "Pact between Condor (v1.3.0) and Pricing Service", "name": "Condor" } ] } } }
Given tagged as prod pact between Condor and the Pricing Service exists, upon receiving a request for the list of the latest prod pacts from all consumers for the Pricing Service’ from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/latest/prod" }
Pact Broker will respond with:
{ "status": 200, "body": { "_links": { "provider": { "href": "http://example.org/pacticipants/Pricing%20Service", "title": "Pricing Service" }, "pb:pacts": [ { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "title": "Pact between Condor (v1.3.0) and Pricing Service", "name": "Condor" } ] } } }
Given the pact for Foo version 1.2.3 has been successfully verified by Bar version 4.5.6, and 1.2.4 unsuccessfully by 9.9.9, upon receiving a request for the successful rows of the compatibility matrix for all versions of Foo and Bar from Pact Broker Client, with
{ "method": "get", "path": "/matrix", "query": "q%5B%5D%5Bpacticipant%5D=Foo&q%5B%5D%5Bpacticipant%5D=Bar&latestby=cvpv&success%5B%5D=true" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "reason": "some text", "unknown": 1 }, "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "4" } }, "provider": { "name": "Bar", "version": { "number": "5" } }, "verificationResult": { "verifiedAt": "2017-10-10T12:49:04+11:00", "success": true, "_links": { "self": { "href": "http://result" } } }, "pact": { "createdAt": "2017-10-10T12:49:04+11:00" } } ] } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, and Condor already has a pact published for version 1.3.0, upon receiving a request retrieve a pact for a specific version from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Upon receiving a request to create a global webhook with a JSON body from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Upon receiving a request to create a pacticipant from Pact Broker Client, with
{ "method": "post", "path": "/pacticipants", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "name": "Foo", "repositoryUrl": "http://foo" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "name": "Foo", "repositoryUrl": "http://foo", "_links": { "self": { "href": "http://localhost:1234/pacticipants/Foo" } } } }
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
{ "method": "post", "path": "/webhooks/provider/Pricing%20Service/consumer/Condor", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 404, "headers": { "Content-Type": "application/hal+json;charset=utf-8" } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with a JSON body and a uuid from Pact Broker Client, with
{ "method": "put", "path": "/webhooks/696c5f93-1b7f-44bc-8d03-59440fcaa9a0", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "provider": { "name": "Pricing Service" }, "consumer": { "name": "Condor" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with a JSON body for a consumer from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "consumer": { "name": "Condor" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with a JSON body for a consumer and provider from Pact Broker Client, with
{ "method": "post", "path": "/webhooks/provider/Pricing%20Service/consumer/Condor", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Upon receiving a request to create a webhook with a JSON body for a consumer specified by a label from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "consumer": { "label": "consumer_label" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Upon receiving a request to create a webhook with a JSON body for a consumer that does not exist from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "consumer": { "name": "Condor" } } }
Pact Broker will respond with:
{ "status": 400, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "errors": { "consumer.name": [ "Some error" ] } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with a JSON body for a provider from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "provider": { "name": "Pricing Service" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Upon receiving a request to create a webhook with a JSON body for a provider specified by a label from Pact Broker Client, with
{ "method": "post", "path": "/HAL-REL-PLACEHOLDER-PB-WEBHOOKS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "provider": { "label": "provider_label" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with a non-JSON body for a consumer and provider from Pact Broker Client, with
{ "method": "post", "path": "/webhooks/provider/Pricing%20Service/consumer/Condor", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": "", "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": "" }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving a request to create a webhook with every possible event type from Pact Broker Client, with
{ "method": "post", "path": "/webhooks/provider/Pricing%20Service/consumer/Condor", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" }, { "name": "contract_published" }, { "name": "provider_verification_published" }, { "name": "provider_verification_succeeded" }, { "name": "provider_verification_failed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" }, { "name": "contract_published" }, { "name": "provider_verification_published" }, { "name": "provider_verification_succeeded" }, { "name": "provider_verification_failed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given a branch named main exists for pacticipant Foo, upon receiving a request to delete a pacticipant branch from Pact Broker Client, with
{ "method": "DELETE", "path": "/HAL-REL-PLACEHOLDER-PB-PACTICIPANT-BRANCH-Foo-main" }
Pact Broker will respond with:
{ "status": 204 }
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
{ "method": "get", "path": "/matrix", "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" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "summary": { "deployable": true, "ignored": 1 }, "notices": [ { "text": "some notice", "type": "info" } ], "matrix": [ { "consumer": { "name": "Foo", "version": { "number": "1.2.3" } }, "provider": { "name": "Bar", "version": { "number": "4.5.6" } }, "verificationResult": { "success": true, "_links": { "self": { "href": "http://result" } } } }, { "consumer": { "name": "Foo", "version": { "number": "3.4.5" } }, "provider": { "name": "Bar", "version": { "number": "4.5.6" } }, "verificationResult": { "success": false, "_links": { "self": { "href": "http://result" } } }, "ignored": true } ] } }
Given the ‘Pricing Service’ already exists in the pact-broker, upon receiving a request to get the Pricing Service from Pact Broker Client, with
{ "method": "get", "path": "/pacticipants/Pricing%20Service" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json" }, "body": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" }, "versions": { "href": "http://example.org/pacticipants/Pricing%20Service/versions" } }, "name": "Pricing Service", "repositoryUrl": "git@git.realestate.com.au:business-systems/pricing-service", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service/versions/1.3.0" } }, "number": "1.3.0" } } } }
Given the ‘Pricing Service’ does not exist in the pact-broker, upon receiving a request to get the Pricing Service from Pact Broker Client, with
{ "method": "get", "path": "/pacticipants/Pricing%20Service" }
Pact Broker will respond with:
{ "status": 404 }
Given ‘Condor’ exists in the pact-broker, upon receiving a request to list pacticipants from Pact Broker Client, with
{ "method": "get", "path": "/pacticipants" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json" }, "body": { "_links": { "self": { "href": "http://example.org/pacticipants" }, "pacticipants": [ { "href": "http://example.org/pacticipants/Condor", "title": "Condor" } ] }, "pacticipants": [ { "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "name": "Condor", "_embedded": { "latest-version": { "_links": { "self": { "href": "http://example.org/pacticipants/Condor/versions/1.3.0" } }, "number": "1.3.0" } } } ] } }
Given a pact between Condor and the Pricing Service exists, upon receiving a request to list the latest pacts from Pact Broker Client, with
{ "method": "get", "path": "/pacts/latest" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json" }, "body": { "_links": { "self": { "href": "http://example.org/pacts/latest" } }, "pacts": [ { "_links": { "self": [ { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" }, { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0" } ] }, "_embedded": { "consumer": { "name": "Condor", "_links": { "self": { "href": "http://example.org/pacticipants/Condor" } }, "_embedded": { "version": { "number": "1.3.0" } } }, "provider": { "_links": { "self": { "href": "http://example.org/pacticipants/Pricing%20Service" } }, "name": "Pricing Service" } } } ] } }
Given an version is deployed to environment with UUID 16926ef3-590f-4e3f-838e-719717aa88c9 with target customer-1, upon receiving a request to list the versions deployed to an environment for a pacticipant name and application instance from Pact Broker Client, with
{ "method": "GET", "path": "/PLACEHOLDER-ENVIRONMENT-CURRENTLY-DEPLOYED-16926ef3-590f-4e3f-838e-719717aa88c9", "query": "pacticipant=Foo", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_embedded": { "deployedVersions": [ { "applicationInstance": "customer-1", "_links": { "self": { "href": "http://localhost:1234/PLACEHOLDER-DEPLOYED-VERSION-ff3adecf-cfc5-4653-a4e3-f1861092f8e0" } } } ] } } }
Given a currently deployed version exists, upon receiving a request to mark a deployed version as not currently deploye from Pact Broker Client, with
{ "method": "PATCH", "path": "/PLACEHOLDER-DEPLOYED-VERSION-ff3adecf-cfc5-4653-a4e3-f1861092f8e0", "headers": { "Content-Type": "application/merge-patch+json" }, "body": { "currentlyDeployed": false } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "currentlyDeployed": false, "_embedded": { "version": { "number": "2" } } } }
Given ‘Condor’ already exist in the pact-broker, but the ‘Pricing Service’ does not, upon receiving a request to publish a pact from Pact Broker Client, with
{ "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-pact-version": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } }
Given the ‘Pricing Service’ already exists in the pact-broker, upon receiving a request to publish a pact from Pact Broker Client, with
{ "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-pact-version": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } }
Given an error occurs while publishing a pact, upon receiving a request to publish a pact from Pact Broker Client, with
{ "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Pact Broker will respond with:
{ "status": 500, "headers": { "Content-Type": "application/hal+json" }, "body": { "error": { "message": "An error occurred" } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, and Condor already has a pact published for version 1.3.0, upon receiving a request to publish a pact with method patch from Pact Broker Client, with
{ "method": "patch", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-pact-version": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, and Condor already has a pact published for version 1.3.0, upon receiving a request to publish a pact with method put from Pact Broker Client, with
{ "method": "put", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0", "headers": { "Content-Type": "application/json" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "pb:latest-pact-version": { "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/latest" } } } }
Upon receiving a request to publish contracts from Pact Broker Client, with
{ "method": "POST", "path": "/HAL-REL-PLACEHOLDER-PB-PUBLISH-CONTRACTS", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "pacticipantName": "Foo", "pacticipantVersionNumber": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30", "branch": "main", "tags": [ "dev" ], "buildUrl": "http://build", "contracts": [ { "consumerName": "Foo", "providerName": "Bar", "specification": "pact", "contentType": "application/json", "content": "eyJjb25zdW1lciI6eyJuYW1lIjoiRm9vIn0sInByb3ZpZGVyIjp7Im5hbWUiOiJCYXIifSwiaW50ZXJhY3Rpb25zIjpbeyJkZXNjcmlwdGlvbiI6ImFuIGV4YW1wbGUgcmVxdWVzdCIsInByb3ZpZGVyU3RhdGUiOiJhIHByb3ZpZGVyIHN0YXRlIiwicmVxdWVzdCI6eyJtZXRob2QiOiJHRVQiLCJwYXRoIjoiLyIsImhlYWRlcnMiOnt9fSwicmVzcG9uc2UiOnsic3RhdHVzIjoyMDAsImhlYWRlcnMiOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vaGFsK2pzb24ifX19XSwibWV0YWRhdGEiOnsicGFjdFNwZWNpZmljYXRpb24iOnsidmVyc2lvbiI6IjIuMC4wIn19fQ==", "onConflict": "merge" } ] } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_embedded": { "pacticipant": { "name": "Foo" }, "version": { "number": "5556b8149bf8bac76bc30f50a8a2dd4c22c85f30" } }, "logs": [ { "level": "info", "message": "some message" } ], "_links": { "pb:pacticipant-version-tags": [ { "name": "dev" } ], "pb:contracts": [ { "href": "http://some-pact" } ] } } }
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
{ "method": "POST", "path": "/HAL-REL-PLACEHOLDER-PB-RECORD-DEPLOYMENT-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "applicationInstance": "blue", "target": "blue" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "target": "blue" } }
Given version 5556b8149bf8bac76bc30f50a8a2dd4c22c85f30 of pacticipant Foo exists with a test environment available for deployment, upon receiving a request to record a release from Pact Broker Client, with
{ "method": "POST", "path": "/HAL-REL-PLACEHOLDER-PB-RECORD-RELEASE-FOO-5556B8149BF8BAC76BC30F50A8A2DD4C22C85F30-TEST", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" } }
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
{ "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" } }
Given the ‘Pricing Service’ does not exist in the pact-broker, upon receiving a request to register the repository URL of a pacticipant from Pact Broker Client, with
{ "method": "patch", "path": "/pacticipants/Pricing%20Service", "headers": { "Content-Type": "application/json" }, "body": { "repository_url": "git@git.realestate.com.au:business-systems/pricing-service" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" } }
Given a pacticipant with name Foo exists, upon receiving a request to retrieve a pacticipant from Pact Broker Client, with
{ "method": "get", "path": "/pacticipants/Foo", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "self": { "href": "http://localhost:1234/pacticipants/Foo" } } } }
Upon receiving a request to retrieve a pacticipant from Pact Broker Client, with
{ "method": "get", "path": "/pacticipants/Foo", "headers": { "Accept": "application/hal+json" } }
Pact Broker will respond with:
{ "status": 404 }
Given ‘Condor’ exists in the pact-broker with the latest tagged ‘production’ version 1.2.3, upon receiving a request to retrieve the latest ‘production’ version of Condor from Pact Broker Client, with
{ "method": "get", "path": "/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-TAGGED-VERSION-Condor-production", "headers": { "Accept": "application/hal+json, application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "number": "1.2.3", "_links": { "self": { "href": "http://localhost:1234/some-url" } } } }
Given a pact between Condor and the Pricing Service exists, upon receiving a request to retrieve the latest pact between Condor and the Pricing Service from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest" }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json", "X-Pact-Consumer-Version": "1.3.0" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Given no pact between Condor and the Pricing Service exists, upon receiving a request to retrieve the latest pact between Condor and the Pricing Service from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest" }
Pact Broker will respond with:
{ "status": 404 }
Given ‘Condor’ exists in the pact-broker with the latest version 1.2.3, upon receiving a request to retrieve the latest version of Condor from Pact Broker Client, with
{ "method": "get", "path": "/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-VERSION-Condor", "headers": { "Accept": "application/hal+json, application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "number": "1.2.3", "_links": { "self": { "href": "http://localhost:1234/some-url" } } } }
Given a pact between Condor and the Pricing Service exists for the production version of Condor, upon receiving a request to retrieve the pact between the production verison of Condor and the Pricing Service from Pact Broker Client, with
{ "method": "get", "path": "/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod", "headers": { "Accept": "application/hal+json, application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "consumer": { "name": "Condor" }, "provider": { "name": "Pricing Service" }, "interactions": [ ] } }
Given ‘Condor’ exists in the pact-broker with version 1.3.0, tagged with ‘prod’, upon receiving a request to tag the production version of Condor from Pact Broker Client, with
{ "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "self": { "href": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod" } } } }
Given ‘Condor’ does not exist in the pact-broker, upon receiving a request to tag the production version of Condor from Pact Broker Client, with
{ "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "self": { "href": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod" } } } }
Given ‘Condor’ exists in the pact-broker, upon receiving a request to tag the production version of Condor from Pact Broker Client, with
{ "method": "put", "path": "/pacticipants/Condor/versions/1.3.0/tags/prod", "headers": { "Content-Type": "application/json" } }
Pact Broker will respond with:
{ "status": 201, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "_links": { "self": { "href": "http://localhost:1234/pacticipants/Condor/versions/1.3.0/tags/prod" } } } }
Given a pacticipant with name Foo exists, upon receiving a request to update a pacticipant from Pact Broker Client, with
{ "method": "patch", "path": "/pacticipants/Foo", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "name": "Foo", "repositoryUrl": "http://foo" } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "name": "Foo", "repositoryUrl": "http://foo", "_links": { "self": { "href": "http://localhost:1234/pacticipants/Foo" } } } }
Given a webhook with the uuid 696c5f93-1b7f-44bc-8d03-59440fcaa9a0 exists, upon receiving a request to update a webhook from Pact Broker Client, with
{ "method": "put", "path": "/webhooks/696c5f93-1b7f-44bc-8d03-59440fcaa9a0", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "url": "https://webhook", "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" }, "provider": { "name": "Pricing Service" }, "consumer": { "name": "Condor" } } }
Pact Broker will respond with:
{ "status": 200, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "description": "a webhook", "request": { "body": { "some": "body" } }, "events": [ { "name": "contract_content_changed" } ], "_links": { "self": { "href": "http://localhost:1234/some-url", "title": "A title" } } } }
Given the ‘Pricing Service’ and ‘Condor’ already exist in the pact-broker, upon receiving an invalid request to create a webhook for a consumer and provider from Pact Broker Client, with
{ "method": "post", "path": "/webhooks/provider/Pricing%20Service/consumer/Condor", "headers": { "Content-Type": "application/json", "Accept": "application/hal+json" }, "body": { "description": "a webhook", "events": [ { "name": "contract_content_changed" } ], "request": { "method": "POST", "headers": { "Foo": "bar", "Bar": "foo" }, "body": { "some": "body" }, "username": "username", "password": "password" } } }
Pact Broker will respond with:
{ "status": 400, "headers": { "Content-Type": "application/hal+json;charset=utf-8" }, "body": { "errors": { "request.url": [ "Some error" ] } } }