{"id":33936649,"url":"https://github.com/pact-foundation/pact-cli","last_synced_at":"2026-05-08T15:01:17.994Z","repository":{"id":319175352,"uuid":"1073892223","full_name":"pact-foundation/pact-cli","owner":"pact-foundation","description":"🔗 Pact in a single binary - Mock/Stub Server, Provider Verifier, Broker Client \u0026 Plugin CLI","archived":false,"fork":false,"pushed_at":"2026-03-12T22:44:36.000Z","size":433,"stargazers_count":1,"open_issues_count":8,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-12T23:45:58.079Z","etag":null,"topics":["broker","contract-testing","mock","pact","pact-broker-client","pact-mock-server","pact-plugins","pact-stub-server","pactflow","smartbear-supported","stub"],"latest_commit_sha":null,"homepage":"https://docs.pact.io/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pact-foundation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-10T19:34:04.000Z","updated_at":"2026-03-02T23:34:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"5c94b1f3-c8b8-4875-8cf8-e8e91dddf076","html_url":"https://github.com/pact-foundation/pact-cli","commit_stats":null,"previous_names":["you54f/pact-cli","pact-foundation/pact-cli"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/pact-foundation/pact-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pact-foundation","download_url":"https://codeload.github.com/pact-foundation/pact-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pact-foundation%2Fpact-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30455071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"online","status_checked_at":"2026-03-13T02:00:07.565Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["broker","contract-testing","mock","pact","pact-broker-client","pact-mock-server","pact-plugins","pact-stub-server","pactflow","smartbear-supported","stub"],"created_at":"2025-12-12T14:27:37.377Z","updated_at":"2026-05-08T15:01:17.980Z","avatar_url":"https://github.com/pact-foundation.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pact CLI\n\n[![Test and Release](https://github.com/pact-foundation/pact-cli/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/pact-foundation/pact-cli/actions/workflows/test.yml)\n\nA consolidated cli consisting of all Pact command line tools\n\n* [pact_mock_server_cli](https://github.com/pact-foundation/pact-core-mock-server/tree/main/pact_mock_server_cli)\n* [pact-stub-server](https://github.com/pact-foundation/pact-stub-server)\n* [pact_verifier_cli](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier_cli)\n* [pact-plugin-cli](https://github.com/pact-foundation/pact-plugins/tree/main/cli)\n* [pact-broker-cli](https://github.com/pact-foundation/pact-broker-cli)\n\n## Installation\n\n### Supported Platforms\n\n| OS            | Architecture | Supported  |\n| ------------- | ------------ | ---------  |\n| MacOS         | x86_64       | ✅         |\n| MacOS         | arm64        | ✅         |\n| Linux (libc)  | x86_64       | ✅         |\n| Linux (libc)  | arm64        | ✅         |\n| Linux (musl)  | x86_64       | ✅         |\n| Linux (musl)  | arm64        | ✅         |\n| Windows       | x86_64       | ✅         |\n| Windows       | arm64        | ✅         |\n\n### Install\n\nAliased 1-liner to the install scripts\n\n* *nix users (including Windows users running WSL/msys2/mingw):\n  * `curl -fsSL https://lin.get-pact.saf.dev | sh`\n* Powershell (windows): `\n  * `iwr -useb https://win.get-pact.saf.dev | iex`\n\nUnix systems\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.sh | sh\n```\n\n```sh\nwget -q https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.sh -O- | sh\n```\n\ninstall fixed version - pass `PACT_CLI_VERSION=v\u003cPACT_CLI_VERSION\u003e` eg `PACT_CLI_VERSION=v0.0.1` or set as an env var\n\n```sh\ncurl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.sh | PACT_CLI_VERSION=v0.0.1 sh\n```\n\n```sh\nwget -q https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.sh -O- | PACT_CLI_VERSION=v0.0.1 sh\n```\n\nWindows (Powershell)\n\n```powershell\niwr -useb https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.ps1 | iex\n```\n\nTo install a specific version, set the `PACT_CLI_VERSION` environment variable before running the script:\n\n```powershell\n$env:PACT_CLI_VERSION = \"v0.0.1\"\niwr -useb https://raw.githubusercontent.com/pact-foundation/pact-cli/main/install.ps1 | iex\n```\n\n### Standalone executable\n\nDownload the latest binary release for your required platform, from the [release](https://github.com/pact-foundation/pact-cli/releases) page.\n\n### Cargo\n\n```sh\ncargo install pact --locked\n```\n\nTo install a specific version using Cargo:\n\n```sh\ncargo install pact --locked --version \u003cVERSION\u003e\n```\n\n### GitHub Action\n\nAn action is available at `pact-foundation/pact-cli@\u003ctag\u003e`\n\nExample\n\n```yml\n    - uses: pact-foundation/pact-cli@main\n \n    - name: Show help commands\n      run: |\n        pact --help\n```\n\n### Docker\n\n2 images are available\n\n* alpine (default)\n* debian\n\ntags format\n\n* `latest`\n* `latest-alpine`\n* `latest-debian`\n* `\u003cversion\u003e`\n* `\u003cversion\u003e-alpine`\n* `\u003cversion\u003e-debian`\n\n## Commands\n\n### All commands\n\n```console\n$ pact --help\n\n**Pact** is the de-facto API contract testing tool. Replace expensive and brittle end-to-end integration tests with fast, reliable and easy to debug unit tests.\n\nCheck out https://docs.pact.io\n\n- ⚡ Lightning fast\n- 🎈 Effortless full-stack integration testing - from the front-end to the back-end\n- 🔌 Supports HTTP/REST and event-driven systems\n- 🛠️  Configurable mock server\n- 😌 Powerful matching rules prevents brittle tests\n- 🤝 Integrates with Pact Broker / PactFlow for powerful CI/CD workflows\n- 🔡 Supports 12+ languages\n\n**Why use Pact?**\n\nContract testing with Pact lets you:\n\n- ⚡ Test locally\n- 🚀 Deploy faster\n- ⬇️  Reduce the lead time for change\n- 💰 Reduce the cost of API integration testing\n- 💥 Prevent breaking changes\n- 🔎 Understand your system usage\n- 📃 Document your APIs for free\n- 🗄  Remove the need for complex data fixtures\n- 🤷 Reduce the reliance on complex test environments\n        \n\nUsage: pact [OPTIONS] [COMMAND]\n\nCommands:\n  broker       A Rust and CLI client for the Pact Broker. Publish and retrieve pacts and verification results.\n  pactflow     PactFlow specific commands\n  completions  Generates completion scripts for your shell\n  extension    Manage Pact CLI extensions\n  plugin       CLI utility for Pact plugins\n  mock         Standalone Pact mock server\n  verifier     Standalone pact verifier for provider pact verification\n  stub         Pact Stub Server 0.7.0\n  help         Print this message or the help of the given subcommand(s)\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp)\n          \n          [env: OTEL_TRACES_EXPORTER=]\n\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp)\n          \n          [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http)\n          \n          [env: OTEL_EXPORTER_OTLP_PROTOCOL=]\n          [default: http]\n          [possible values: http, http/protobuf]\n\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace)\n          \n          [default: off]\n          [possible values: off, none, error, warn, info, debug, trace]\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n```\n\n### `broker`\n\n```console\n$ pact broker --help\nA Rust and CLI client for the Pact Broker. Publish and retrieve pacts and verification results.\n\nUsage: pact broker [OPTIONS] [COMMAND]\n\nCommands:\n  publish                       Publishes pacts to the Pact Broker\n  list-latest-pact-versions     List the latest pact for each integration\n  get-pacts                     Get pacts for a specified provider, optionally filtered by consumer and/or branch\n  create-environment            Create an environment resource in the Pact Broker to represent a real world deployment or release environment\n  update-environment            Update an environment resource in the Pact Broker\n  delete-environment            Delete an environment\n  describe-environment          Describe an environment\n  list-environments             List environments\n  record-deployment             Record deployment of a pacticipant version to an environment\n  record-undeployment           Record undeployment of a pacticipant version from an environment\n  record-release                Record release of a pacticipant version to an environment.\n  record-support-ended          Record the end of support for a pacticipant version in an environment.\n  can-i-deploy                  Check if a pacticipant can be deployed.\n  can-i-merge                   Checks if the specified pacticipant version is compatible with the configured main branch of each of the pacticipants with which it is integrated.\n  create-or-update-pacticipant  Create or update pacticipant by name\n  describe-pacticipant          Describe a pacticipant\n  list-pacticipants             List pacticipants\n  create-webhook                Create a webhook\n  create-or-update-webhook      Create or update a webhook\n  delete-webhook                Delete a webhook\n  test-webhook                  Test a webhook\n  delete-branch                 Deletes a pacticipant branch. Does not delete the versions or pacts/verifications associated with the branch, but does make the pacts inaccessible for verification via consumer versions selectors or WIP pacts.\n  create-version-tag            Add a tag to a pacticipant version\n  delete-version-tag            Delete a tag from a pacticipant version\n  describe-version              Describes a pacticipant version. If no version or tag is specified, the latest version is described. Use --environment to query versions deployed/released to specific environments.\n  create-or-update-version      Create or update pacticipant version by version number\n  generate-uuid                 Generate a UUID for use when calling create-or-update-webhook\n  provider-states               Manage provider states\n  ruby                          Install \u0026 Run the Pact Broker using system Ruby in $HOME/.pact/pact-broker\n  docker                        Run the Pact Broker as a Docker container\n  help                          Print this message or the help of the given subcommand(s)\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n  -o, --output \u003cOUTPUT\u003e\n          Value must be one of [\"json\", \"text\", \"table\", \"pretty\"] [default: text] [possible values: json, text, table, pretty]\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n\n```\n\n### `pactflow`\n\n```console\n$ pact pactflow --help\nPactFlow specific commands\n\nUsage: pact pactflow [OPTIONS] [COMMAND]\n\nCommands:\n  publish-provider-contract  Publish provider contract to PactFlow\n  help                       Print this message or the help of the given subcommand(s)\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n  -h, --help\n          Print help\n\n```\n\n### `plugin`\n\n```console\n$ pact plugin --help\nCLI utility for Pact plugins\n\nUsage: pact plugin [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  list        List installed or available plugins\n  env         Print out the Pact plugin environment config\n  install     Install a plugin\n  remove      Remove a plugin\n  enable      Enable a plugin version\n  disable     Disable a plugin version\n  repository  Sub-commands for dealing with a plugin repository\n  help        Print this message or the help of the given subcommand(s)\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n  -y, --yes\n          Automatically answer Yes for all prompts\n  -d, --debug\n          Enable debug level logs\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n  -t, --trace\n          Enable trace level logs\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n  -v, --version\n          Print CLI version\n  -h, --help\n          Print help\n\n```\n\n### `mock`\n\n```console\n$ pact mock --help\nStandalone Pact mock server\n\nUsage: pact mock [OPTIONS] [COMMAND]\n\nCommands:\n  start            Starts the master mock server\n  list             Lists all the running mock servers\n  create           Creates a new mock server from a pact file\n  verify           Verify the mock server by id or port number, and generate a pact file if all ok\n  shutdown         Shutdown the mock server by id or port number, releasing all its resources\n  shutdown-master  Performs a graceful shutdown of the master server (displayed when it started)\n  help             Print this message or the help of the given subcommand(s)\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n      --help\n          Print help and exit\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n  -v, --version\n          Print version information and exit\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n  -p, --port \u003cport\u003e\n          port the master mock server runs on (defaults to 8080)\n  -h, --host \u003chost\u003e\n          hostname the master mock server runs on (defaults to localhost)\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n  -l, --loglevel \u003cloglevel\u003e\n          Log level for mock servers to write to the log file (defaults to info) [possible values: error, warn, info, debug, trace, none]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --no-term-log\n          Turns off using terminal ANSI escape codes\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --no-file-log\n          Do not log to an output file\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n\n```\n\n### `verifier`\n\n```console\n$ pact verifier --help\nStandalone pact verifier for provider pact verification\n\nUsage: pact verifier [OPTIONS]\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n      --help\n          Print help and exit\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n  -v, --version\n          Print version information and exit\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n\nLogging options:\n  -l, --loglevel \u003cloglevel\u003e    Log level to emit log events at (defaults to warn) [possible values: error, warn, info, debug, trace, none]\n      --pretty-log             Emits excessively pretty, multi-line logs, optimized for human readability.\n      --full-log               This emits human-readable, single-line logs for each event that occurs, with the current span context displayed before the formatted representation of the event.\n      --compact-log            Emit logs optimized for short line lengths.\n  -j, --json \u003cjson-file\u003e       Generate a JSON report of the verification [env: PACT_VERIFIER_JSON_REPORT=]\n  -x, --junit \u003cjunit-file\u003e     Generate a JUnit XML report of the verification (requires the junit feature) [env: PACT_VERIFIER_JUNIT_REPORT=]\n      --html \u003chtml-file\u003e       Generate an HTML report of the verification [env: PACT_VERIFIER_HTML_REPORT=]\n      --xslt \u003chtml-file-xslt\u003e  XSLT to use when generating the HTML report of the verification\n      --no-colour              Disables ANSI escape codes in the output [aliases: --no-color]\n\nLoading pacts options:\n  -f, --file \u003cfile\u003e\n          Pact file to verify (can be repeated)\n  -d, --dir \u003cdir\u003e\n          Directory of pact files to verify (can be repeated)\n  -u, --url \u003curl\u003e\n          URL of pact file to verify (can be repeated)\n  -b, --broker-url \u003cbroker-url\u003e\n          URL of the pact broker to fetch pacts from to verify (requires the provider name parameter) [env: PACT_BROKER_BASE_URL=]\n      --webhook-callback-url \u003cwebhook-callback-url\u003e\n          URL of a Pact to verify via a webhook callback. Requires the broker-url to be set. [env: PACT_WEBHOOK_CALLBACK_URL=]\n      --ignore-no-pacts-error\n          Do not fail if no pacts are found to verify\n\nAuthentication options:\n      --user \u003cuser\u003e          Username to use when fetching pacts from URLS [env: PACT_BROKER_USERNAME=]\n      --password \u003cpassword\u003e  Password to use when fetching pacts from URLS [env: PACT_BROKER_PASSWORD=]\n  -t, --token \u003ctoken\u003e        Bearer token to use when fetching pacts from URLS [env: PACT_BROKER_TOKEN=]\n\nProvider options:\n  -h, --hostname \u003chostname\u003e\n          Provider hostname (defaults to localhost) [env: PACT_PROVIDER_HOSTNAME=]\n  -p, --port \u003cport\u003e\n          Provider port (defaults to protocol default 80/443) [env: PACT_PROVIDER_PORT=]\n      --transport \u003ctransport\u003e\n          Provider protocol transport to use (http, https, grpc, etc.) [env: PACT_PROVIDER_TRANSPORT=] [default: http]\n      --transports \u003ctransports\u003e\n          Allows multiple protocol transports to be configured (http, https, grpc, etc.) with their associated port numbers separated by a colon. For example, use --transports http:8080 grpc:5555 to configure both.\n  -n, --provider-name \u003cprovider-name\u003e\n          Provider name (defaults to provider) [env: PACT_PROVIDER_NAME=]\n      --base-path \u003cbase-path\u003e\n          Base path to add to all requests [env: PACT_PROVIDER_BASE_PATH=]\n      --request-timeout \u003crequest-timeout\u003e\n          Sets the HTTP request timeout in milliseconds for requests to the target API and for state change requests. [env: PACT_PROVIDER_REQUEST_TIMEOUT=]\n  -H, --header \u003ccustom-header\u003e\n          Add a custom header to be included in the calls to the provider. Values must be in the form KEY=VALUE, where KEY and VALUE contain ASCII characters (32-127) only. Can be repeated.\n      --disable-ssl-verification\n          Disables validation of SSL certificates\n\nProvider state options:\n  -s, --state-change-url \u003cstate-change-url\u003e\n          URL to post state change requests to [env: PACT_PROVIDER_STATE_CHANGE_URL=]\n      --state-change-as-query\n          State change request data will be sent as query parameters instead of in the request body [env: PACT_PROVIDER_STATE_CHANGE_AS_QUERY=]\n      --state-change-teardown\n          State change teardown requests are to be made after each interaction [env: PACT_PROVIDER_STATE_CHANGE_TEARDOWN=]\n\nFiltering interactions:\n      --filter-description \u003cfilter-description\u003e\n          Only validate interactions whose descriptions match this filter (regex format) [env: PACT_DESCRIPTION=]\n      --filter-state \u003cfilter-state\u003e\n          Only validate interactions whose provider states match this filter (regex format) [env: PACT_PROVIDER_STATE=]\n      --filter-no-state\n          Only validate interactions that have no defined provider state [env: PACT_PROVIDER_NO_STATE=]\n  -c, --filter-consumer \u003cfilter-consumer\u003e\n          Consumer name to filter the pacts to be verified (can be repeated)\n\nPublishing options:\n      --publish\n          Enables publishing of verification results back to the Pact Broker. Requires the broker-url and provider-version parameters.\n      --provider-version \u003cprovider-version\u003e\n          Provider version that is being verified. This is required when publishing results.\n      --build-url \u003cbuild-url\u003e\n          URL of the build to associate with the published verification results.\n      --provider-tags \u003cprovider-tags\u003e\n          Provider tags to use when publishing results. Accepts comma-separated values.\n      --provider-branch \u003cprovider-branch\u003e\n          Provider branch to use when publishing results\n\nPact Broker options:\n      --consumer-version-tags \u003cconsumer-version-tags\u003e\n          Consumer tags to use when fetching pacts from the Broker. Accepts comma-separated values.\n      --consumer-version-selectors \u003cconsumer-version-selectors\u003e\n          Consumer version selectors to use when fetching pacts from the Broker. Accepts a JSON string as per https://docs.pact.io/pact_broker/advanced_topics/consumer_version_selectors/. Can be repeated.\n      --enable-pending\n          Enables Pending Pacts\n      --include-wip-pacts-since \u003cinclude-wip-pacts-since\u003e\n          Allow pacts that don't match given consumer selectors (or tags) to  be verified, without causing the overall task to fail. For more information, see https://pact.io/wip\n\nDevelopment options:\n      --exit-on-first-error  Stops the verifier at the first failure\n      --last-failed          Only runs the interactions that failed on the previous verifier run. Requires --json-file to have been set\n\n```\n\n### `stub`\n\n```console\n$ pact stub --help\nPact Stub Server 0.7.0\n\nUsage: pact stub [OPTIONS]\n\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n  -l, --loglevel \u003cloglevel\u003e\n          Log level (defaults to info) [default: info] [possible values: error, warn, info, debug, trace, none]\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n  -f, --file \u003cfile\u003e\n          Pact file to load (can be repeated)\n  -d, --dir \u003cdir\u003e\n          Directory of pact files to load (can be repeated)\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n  -e, --extension \u003cext\u003e\n          File extension to use when loading from a directory (default is json)\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n  -u, --url \u003curl\u003e\n          URL of pact file to fetch (can be repeated)\n  -b, --broker-url \u003cbroker-url\u003e\n          URL of the pact broker to fetch pacts from [env: PACT_BROKER_BASE_URL=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, http) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf]\n      --user \u003cuser\u003e\n          User and password to use when fetching pacts from URLS or Pact Broker in user:password form\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n  -t, --token \u003ctoken\u003e\n          Bearer token to use when fetching pacts from URLS or Pact Broker\n  -p, --port \u003cport\u003e\n          Port to run on (defaults to random port assigned by the OS)\n  -o, --cors\n          Automatically respond to OPTIONS requests and return default CORS headers\n      --cors-referer\n          Set the CORS Access-Control-Allow-Origin header to the Referer\n      --insecure-tls\n          Disables TLS certificate validation\n  -s, --provider-state \u003cprovider-state\u003e\n          Provider state regular expression to filter the responses by\n      --provider-state-header-name \u003cprovider-state-header-name\u003e\n          Name of the header parameter containing the provider state to be used in case multiple matching interactions are found\n      --empty-provider-state\n          Include empty provider states when filtering with --provider-state\n      --consumer-name \u003cconsumer-name\u003e\n          Consumer name or regex to use to filter the Pacts fetched from the Pact broker (can be repeated)\n      --provider-name \u003cprovider-name\u003e\n          Provider name or regex to use to filter the Pacts fetched from the Pact broker (can be repeated)\n  -w, --watch\n          Watch for changes in pact files and reload automatically\n  -v, --version\n          Print version information\n  -h, --help\n          Print help\n\n```\n\n## Open Telemetry\n\nThe `pact` cli supports native opentelemetry for traces and application logs.\n\nIt is opt-in via `--enable-otel`, you must set\n    - `--enable-otel-traces` for traces\n    - `--enable-otel-logs` for logs\n        - `--log-level` must be set\n    - `--enable-otlp-exporter` must be set\n\nBy default, `--otel-exporter-endpoint` will route to `http://localhost:4318`.\n\n```sh\nOptions:\n      --enable-otel\n          Enable OpenTelemetry tracing\n      --enable-otel-logs\n          Enable OpenTelemetry logging\n      --enable-otel-traces\n          Enable OpenTelemetry traces\n      --otel-exporter \u003cotel-exporter\u003e\n          The OpenTelemetry exporter(s) to use, comma separated (stdout, otlp) [env: OTEL_TRACES_EXPORTER=]\n      --otel-exporter-endpoint \u003cotel-exporter-endpoint\u003e\n          The endpoint to use for the OTLP exporter (required if --otel-exporter=otlp) [env: OTEL_EXPORTER_OTLP_ENDPOINT=]\n      --otel-exporter-protocol \u003cotel-exporter-protocol\u003e\n          The protocol to use for the OTLP exporter (http/protobuf, grpc) [env: OTEL_EXPORTER_OTLP_PROTOCOL=] [default: http] [possible values: http, http/protobuf, grpc]\n      --log-level \u003cLEVEL\u003e\n          Set the log level (none, off, error, warn, info, debug, trace) [default: off] [possible values: off, none, error, warn, info, debug, trace]\n```\n\nStandard otel environemnt variables are followed\n\n```sh\nexport OTEL_EXPORTER_OTLP_ENDPOINT=\"http://localhost:4318\"\nexport OTEL_TRACES_EXPORTER=\"otlp\"\nexport OTEL_EXPORTER_OTLP_PROTOCOL=\"http/protobuf\"\n```\n\nCurrently instrumented crates are\n\n* pact-broker-cli\n* pact-cli\n\n## Ecosystem\n\nThe ecosystem is built up of multiple different crates, each which serve a different purpose.\n\nAll active crates are listed below.\n\n### Core\n\n[`pact_models`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_models)\nThis is a library that provides the Pact models and functions for reading and writing pact files.\n\n[`pact_matching`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_matching)\nThis is a library that provides the Pact functions for matching requests and responses.\n\n[`pact_mock_server`](https://github.com/pact-foundation/pact-core-mock-server/pact_mock_server)\nThis is a library that implements the in-process mock server for matching HTTP requests and generating responses from a pact file. It implements the [V3 Pact specification](https://github.com/pact-foundation/pact-specification/tree/version-3) and [V4 Pact specification](https://github.com/pact-foundation/pact-specification/tree/version-4)\n\n### Library Consumers\n\n[`pact_consumer`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_consumer)\nThis is a library that provides the Pact consumer test support and DSL for use in Rust projects.\n\n[`pact_verifier`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier)\nThis library provides support for verifying a provider against pact files.\n\n### External Consumers\n\n#### FFI\n\n[`pact_ffi`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_ffi)\nThis is a library that implements exported functions using C bindings for use in foreign languages.\n\n#### CLI\n\n[`pact_mock_server_cli`](https://github.com/pact-foundation/pact-core-mock-server/pact_mock_server_cli)\nA command line application that provides both a restful web api and command line interface to run pact mock servers and is able to manage multiple mock servers. The lifecycle of each mock server can be controlled by the restful web api or through the command line interface. It implements the [V4 Pact specification](https://github.com/pact-foundation/pact-specification/tree/version-4).\n\n[`pact_verifier_cli`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier_cli)\nCommand line executable that uses the [pact_verifier](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier) to be able to verify a running provider against pact files.\n\n### Plugins\n\n[`pact-plugin-driver`](https://github.com/pact-foundation/pact-plugins/tree/main/drivers/rust/driver)\nA support library that provides an interface for interacting with Pact plugins\n\n[`pact-plugin-cli`](https://github.com/pact-foundation/pact-plugins/tree/main/cli)\nCommand line executable to manage and install Pact plugins.\n\n### Satellite\n\n[`pact-stub-server`](https://github.com/pact-foundation/pact-stub-server)\nCommand line executable that provides a server that can generate responses based on pact files. It implements the [V4 Pact specification](https://github.com/pact-foundation/pact-specification/tree/version-4).\n\n## Contributing\n\nSee [CONTRIBUTING](https://github.com/pact-foundation/pact-cli/tree/main/CONTRIBUTING.md) (PRs are always welcome!).\n\n## Documentation\n\nRust crate documentation is published to the Rust documentation site.\n\n* [pact_matching](https://docs.rs/pact_matching/)\n* [pact_models](https://docs.rs/pact_models/)\n* [pact_mock_server](https://docs.rs/pact_mock_server)\n* [pact_consumer](https://docs.rs/pact_consumer/)\n* [pact_verifier](https://docs.rs/pact_verifier/)\n* [pact_ffi](https://docs.rs/pact_ffi/)\n* [pact_mock_server_cli](https://docs.rs/pact_mock_server_cli)\n* [pact_verifier_cli](https://docs.rs/pact_verifier_cli/)\n* [pact-plugin-driver](https://docs.rs/pact-plugin-driver)\n* [pact-plugin-cli](https://docs.rs/pact-plugin-cli)\n* [pact-broker-cli](https://docs.rs/pact-broker-cli)\n* [pact-stub-server](https://docs.rs/pact-stub-server)\n\nAdditional documentation can be found at the main [Pact website](https://pact.io/).\n\nContact\n\nJoin us in slack: slack\n\nor\n\n* Twitter: @pact_up\n* Stack Overflow: stackoverflow.com/questions/tagged/pact\n\n## Licensing\n\nThe code in this project is licensed under a MIT license. See [LICENSE](https://github.com/pact-foundation/pact-cli/tree/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpact-foundation%2Fpact-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpact-foundation%2Fpact-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpact-foundation%2Fpact-cli/lists"}