> For the complete documentation index, see [llms.txt](https://docs.does.qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.does.qa/platform/integrations/github.md).

# GitHub

Connect GitHub Actions to DoesQA so every pull request and deploy can start a Run, wait for the result, and show the outcome in Checks. The DoesQA GitHub Action wraps the [Universal Webhook](/platform/integrations/universal-webhook.md) with PR-friendly reporting built in.

{% embed url="<https://github.com/Does-QA/action>" %}

## Why use it

* Start DoesQA from the same workflow that builds and deploys your app.
* See pass or fail on the PR Checks tab, with a link straight into the DoesQA report.
* Get a Job Summary on the Actions run page without extra setup.
* Reuse the same key, tags, and Recipes you already use with the Universal Webhook.

## Before you start

1. Create an Active CI/CD webhook key under **Settings → CI/CD**. See [CI / CD](/configuration/ci-cd.md).
2. Copy your **Account ID** from Account Settings.
3. Store them as GitHub Actions secrets, for example `DOESQA_KEY` and `DOESQA_ACCOUNT_ID`.

## Add the Action

Create a workflow (for example `.github/workflows/doesqa.yml`):

```yaml
name: DoesQA Test Run

on:
  pull_request:

permissions:
  checks: write

jobs:
  doesqa-test-run:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger DoesQA Test Run
        uses: Does-QA/action@v1
        with:
          key: ${{ secrets.DOESQA_KEY }}
          accountId: ${{ secrets.DOESQA_ACCOUNT_ID }}
          label: 'PR #${{ github.event.pull_request.number }}'
          withAll: 'smoke,staging'
          withoutAny: 'wip'
          values: '{"BASE_URL": "https://staging.example.com"}'
          wait: 'true'
          timeout: '1800'
          recipe: '4sJz2'
          testsTagged: 'priority'
```

{% hint style="info" %}
**Pro tip:** Keep `permissions: checks: write` so the Action can post a Check Run on the commit. That is what shows pass or fail in the PR Checks tab.
{% endhint %}

## Inputs

| Input          | Required | What it does                                                                                                           |
| -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
| `key`          | Yes      | CI/CD webhook key                                                                                                      |
| `accountId`    | Yes      | Account ID from Account Settings                                                                                       |
| `label`        | No       | Label shown on the Run                                                                                                 |
| `withAll`      | No       | Include tags. The Flow must have all of them.                                                                          |
| `withoutAny`   | No       | Exclude tags. The Flow must have none of them. Defaults to `wip`.                                                      |
| `values`       | No       | JSON object of Value overrides                                                                                         |
| `wait`         | No       | Wait for the Run to finish before the job continues. Defaults to `true`.                                               |
| `timeout`      | No       | How long to wait, in seconds, when waiting is enabled. Defaults to `1200`.                                             |
| `concurrency`  | No       | Cap how many Test Cases from this Run run at once                                                                      |
| `recipe`       | No       | Run Recipe ID                                                                                                          |
| `testsTagged`  | No       | Only Test Cases with this tag                                                                                          |
| `github-token` | No       | Token used to create the Check Run. Defaults to the workflow token. Set to an empty string to skip Check Run creation. |

## Outputs

| Output       | What it is                                                                      |
| ------------ | ------------------------------------------------------------------------------- |
| `status`     | Final status of the Run, such as `passed`, `failed`, `terminated`, or `timeout` |
| `report-url` | Link to the DoesQA report for this Run                                          |

## What you see in GitHub

### Job Summary

Every run adds a markdown summary on the GitHub Actions page: status, counts, duration, and a link to the full DoesQA report.

### Check Run

With `checks: write`, the Action creates a Check Run on the commit. It shows as in progress while DoesQA runs, then updates with the final result and a Details link into DoesQA.

## Related

* [Integrations](/platform/integrations.md)
* [Universal Webhook](/platform/integrations/universal-webhook.md)
* [GitLab](/platform/integrations/gitlab.md)
* [CI / CD](/configuration/ci-cd.md)
* [Run Recipes](/configuration/run-recipes.md)
* [Max Concurrency](/configuration/max-concurrency.md)
* [Notifications](/configuration/notifications.md)
