Counts
Passed, failed, blocked and needs-review checks. Blocked and needs-review never count as passed.
Guide · GitHub Actions and CI
Save a reviewed Sybqa plan once. Each pull request or deploy then starts a run in a real browser, and your pull request gets a verdict, the most frequent failures, and a link to the evidence report.
.sybqa/plan.json.SYBQA_API_TOKEN..github/workflows/sybqa.yml:name: Sybqa QA
on: pull_request
permissions:
contents: read
pull-requests: write # lets the action post the PR comment
jobs:
sybqa:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kavy-sybqa/sybqa/integrations/github-action@main
with:
api-token: ${{ secrets.SYBQA_API_TOKEN }}
plan: .sybqa/plan.json
target-url: https://staging.example.com
github-token: ${{ github.token }}
Open a pull request. The job waits for the run, fails when a required check fails, and updates one comment instead of adding a new one on every push. Set fail-on: never for a first week of reporting without blocking merges.
Hosts such as Vercel and Netlify report a preview URL through GitHub deployment events. Trigger on that event and pass the URL as target-url, so the run tests the build that was just deployed rather than a fixed staging site.
on: deployment_status
jobs:
sybqa:
if: github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kavy-sybqa/sybqa/integrations/github-action@main
with:
api-token: ${{ secrets.SYBQA_API_TOKEN }}
plan: .sybqa/plan.json
target-url: ${{ github.event.deployment_status.environment_url }}
Protected previews need access set up first. See the authenticated preview guide.
Passed, failed, blocked and needs-review checks. Blocked and needs-review never count as passed.
The five most frequent failures, so a long run still reads in ten seconds.
The full evidence report with screenshots and steps to reproduce. Opening it requires signing in to Sybqa.
verdict, run-id and report-url are available to later steps in the job.
fail-on controls the job result: fail (default) fails on failed checks or an unfinished run, review also fails on blocked or needs-review results, and never only reports.
Any CI can call the same API with the same token. Start a run with POST /api/runs and the exported plan, then poll GET /api/runs/<id> until the status is completed, blocked, failed or cancelled. The result field is pass, issues or incomplete.
RUN_ID=$(jq '{plan: .}' .sybqa/plan.json \
| curl -sf -X POST https://app.sybqa.com/api/runs \
-H "Authorization: Bearer $SYBQA_API_TOKEN" \
-H 'Content-Type: application/json' --data-binary @- \
| jq -r .id)
CI runs use the same plan as runs started in the console. The free plan includes monthly runs without AI review, and every run counts, including reruns. AI review is part of the paid Starter plan. See pricing for the current numbers.
You need a plan before the workflow has anything to run. Create a free account, point Sybqa at your site, and download the plan.