Integration

Pathly GitHub Action (pathly-action)

Post-deploy smoke: run-scenario fails the job if the run is not ok. Alias run-and-wait.

OpenAPI contractIssue an API keyFree Solo account

Full document, no authentication, ready for your client generator.

GitHub Action

Official action pathlyhq/pathly-action@v1 (sources in monorepo integrations/github-action). Operations: ping (checks the key), assert-scenario (fails if lastStatus ≠ ok, no new run), ensure-scenario (creates / updates a Ping or a Chain via httpChain) and run-scenario (triggers a run and fails the job if status is not ok). run-and-wait is an alias of run-scenario. Store PATHLY_API_TOKEN in repo secrets.

Typical use: after deploy on main, a “Pathly smoke” job runs run-scenario and turns the workflow red if the critical journey fails. Minimal scopes: runs:trigger + runs:read to run and poll; scenarios:write for ensure-scenario.

run-scenario (job rouge si pas ok)

# .github/workflows/pathly.yml
name: Pathly CI
on:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  pathly:
    runs-on: ubuntu-latest
    steps:
      - name: Smoke checkout
        uses: pathlyhq/pathly-action@v1
        with:
          api_token: ${{ secrets.PATHLY_API_TOKEN }}
          operation: run-scenario
          scenario_id: ${{ vars.PATHLY_CHECKOUT_SCENARIO_ID }}
          timeout_sec: "120"

assert-scenario (rapide, pas de nouveau run)

- name: Pathly assert
  uses: pathlyhq/pathly-action@v1
  with:
    api_token: ${{ secrets.PATHLY_API_TOKEN }}
    operation: assert-scenario
    scenario_id: ${{ vars.PATHLY_CHECKOUT_SCENARIO_ID }}

ping post-deploy

- name: Pathly ping
  uses: pathlyhq/pathly-action@v1
  with:
    operation: ping
    api_token: ${{ secrets.PATHLY_API_TOKEN }}

ensure-scenario

- name: Ensure checkout
  uses: pathlyhq/pathly-action@v1
  with:
    api_token: ${{ secrets.PATHLY_API_TOKEN }}
    operation: ensure-scenario
    scenario_json: |
      {
        "name": "Checkout",
        "url": "https://www.example.com/cart",
        "intervalSec": 300,
        "severity": "major"
      }