{"id":18305561,"url":"https://github.com/pperzyna/pact-example","last_synced_at":"2026-03-03T17:02:11.466Z","repository":{"id":103648246,"uuid":"197576594","full_name":"pperzyna/pact-example","owner":"pperzyna","description":"This is a python application for an explanation of Contract Testing based on Pact.","archived":false,"fork":false,"pushed_at":"2023-05-22T22:27:54.000Z","size":11,"stargazers_count":5,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-01T20:52:05.349Z","etag":null,"topics":["contract-testing","explanation","pact","pact-consumer","pact-provider","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pperzyna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-18T11:46:30.000Z","updated_at":"2020-11-01T11:24:45.000Z","dependencies_parsed_at":"2023-06-11T03:23:50.466Z","dependency_job_id":null,"html_url":"https://github.com/pperzyna/pact-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pperzyna%2Fpact-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pperzyna%2Fpact-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pperzyna%2Fpact-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pperzyna%2Fpact-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pperzyna","download_url":"https://codeload.github.com/pperzyna/pact-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247366881,"owners_count":20927607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contract-testing","explanation","pact","pact-consumer","pact-provider","python"],"created_at":"2024-11-05T15:34:57.028Z","updated_at":"2026-03-03T17:02:06.398Z","avatar_url":"https://github.com/pperzyna.png","language":"Python","readme":"# PACT Example Application\n\nThis is a python application for explanation of Contract Testing based on [Pact](https://docs.pact.io/).\n\n## Getting Started\n\n[![Build Status](https://travis-ci.org/pperzyna/pact-example.svg?branch=master)](https://travis-ci.org/pperzyna/pact-example)\n\n### Prerequisites\n\nWhat kind of things you need to install on your local computer to start:\n\n* [Docker](https://www.docker.com/)\n* [Docker-Compose](https://docs.docker.com/compose/)\n\n### Installing\n\nRun local stack via docker-compose\n``` bash\ndocker-compose up --build\n```\n\n## Provider\n\nThis is a sample Flask application that expose endpoints with REST standard.\n\n|  endpoint      | method   | payload | description |\n| ---            | ---      | ---     | ---         |\n| /user          | `GET`    | | show all users |\n| /user          | `POST`   | `{'name','description'}` | create user |\n| /user/**:id**  | `GET`    | | show user with **:id** |\n| /user/**:id**  | `DELETE` | | delete user with **:id** |\n\n## Consumer\n\nThis is a sample python script, which consume the information from provider. \n\n|  variable         | default               | description          |\n| ---               | ---                   | ---                  |\n| API_PROVIDER_URL  | http://localhost:5000 | URL of provider app  |\n\n## Pact\n\nSample Contract (Pact): [consumer/src/pact/Consumer-Provider-pact.json](consumer/src/pact/Consumer-Provider-pact.json).\n\n#### GENERATE\n\nRun the tests on the consumer application. Check out the [entrypoint.sh](consumer/src/entrypoint.sh) file.\n\n#### PUBLISH\n\n``` bash\ndocker run -v $PWD/consumer/src/pact/:/usr/src/app/pact pactfoundation/pact-cli publish /usr/src/app/pact/ --consumer-app-version $GIT_COMMIT --tag=$GIT_BRANCH\n```\n\n#### VERIFY\n\n``` bash\ndocker run pactfoundation/pact-cli verify --pact-broker-base-url=${PACT_BROKER_URL} --provider-base-url=${PROVIDER_URL} --provider-states-setup-url=${PROVIDER_URL}/_pact/provider_state --provider=Provider --provider-app-version=${GIT_COMMIT} --publish-verification-results --verbose\n```\n\n#### CAN-I-DEPLOY\n\n``` bash\ndocker run pactfoundation/pact-cli broker can-i-deploy --broker-base-url=${PACT_BROKER_URL} -a Provider -e $GIT_COMMIT --to $GIT_BRANCH\n```\n\n#### CREATE-VERSION-TAG\n\n``` bash\ndocker run pactfoundation/pact-cli broker create-version-tag -a Consumer -e $GIT_COMMIT -t $GIT_BRANCH\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpperzyna%2Fpact-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpperzyna%2Fpact-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpperzyna%2Fpact-example/lists"}