Browse the docs

Scheduled scans

Check your live site on a timetable, with a separate allowance that never eats into pull request runs.

A scheduled scan checks a live site with no pull request involved: a nightly look at production, a weekly check of a client’s site, or monitoring a page that content editors change outside of code review.

Scheduled scans have their own monthly allowance, so they never use up the runs your pull requests need.

PlanScheduled scans per month
Free5
Developer60
Team300
Agency1,500

Each project can also start at most 4 scheduled scans per UTC day.

GitHub Actions

Add a workflow triggered by schedule, pointed at the live site. The site’s host must be in the project’s allowed domains. id-token: write is required: it is how QualityGate confirms the run really was started by a schedule.

name: QualityGate nightly

on:
  schedule:
    - cron: '0 3 * * *' # 03:00 UTC every day

permissions:
  contents: read
  id-token: write

jobs:
  production:
    runs-on: ubuntu-latest
    steps:
      - run: npx -y playwright@1.61.1 install --with-deps chromium
      - uses: qualitygate/scan-action@v1
        with:
          url: https://www.example.com/
          bundle: full

For several pages or sites, use a matrix as described in Multiple pages and sites.

GitLab CI

The released template already runs for scheduled pipelines. Create a schedule under Build → Pipeline schedules and set the variable QUALITYGATE_URL on the schedule to the live site.

What is different about scheduled runs

  • They never comment on a pull request and never become a regression baseline.
  • A failing scheduled scan fails its workflow run, which GitHub or GitLab can notify you about. QualityGate notifications also cover failed gates.
  • They appear in run history and score trends labelled Scheduled scan, and the weekly digest lists the latest scheduled result for each project and bundle.