name: contract_requiring_verification_published # This workflow leverages the https://docs.pact.io/pact_broker/webhooks#the-contract-requiring-verification-published-event webhook on: repository_dispatch: types: - contract_requiring_verification_published workflow_dispatch: # inputs aren't available on push, so we set them explicitly in separate steps inputs: PACT_URL: description: URL of pact to verify required: true env: PACT_BROKER_BASE_URL: ${{ vars.PACT_BROKER_BASE_URL }} PACT_BROKER_TOKEN: ${{ secrets.PACTFLOW_TOKEN_FOR_CI_CD_WORKSHOP }} PACT_BROKER_PUBLISH_VERIFICATION_RESULTS: true PACT_URL: ${{ github.event.client_payload.pact_url }} GIT_COMMIT: ${{ github.event.client_payload.sha }} GIT_BRANCH: ${{ github.event.client_payload.branch }} DESCRIPTION: ${{ github.event.client_payload.message }} jobs: verify-contract-requiring-verification: runs-on: ubuntu-latest steps: - name: checkout default branch if user manually provides pact URL uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 if: ${{ github.event.inputs.PACT_URL }} - name: checkout specific SHA if webhook providers pact URL uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 if: ${{ github.event.client_payload.pact_url }} with: ref: ${{env.GIT_COMMIT}} - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: '24' - run: docker pull pactfoundation/pact-cli:latest - name: Install run: npm i - name: ${{env.DESCRIPTION}} run: make ci_webhook