Skip to main content

Status checks

Understand how status checks ensure commits meet repository conditions, assist pull request reviews, and manage validations like builds, tests, and deployments.

Status checks show whether commits meet the conditions set for a repository. They are usually created by external systems, such as continuous integration builds, tests, code scanning, or deployment checks.

Status checks help reviewers and maintainers understand whether a pull request is ready to merge. A check can show that work is still running, that changes passed validation, or that something needs attention.

Screenshot of a list of commits and statuses.

Anyone with write permissions to a repository can set the state for any status check in the repository.

If status checks are required for a protected branch, they must pass before the pull request can be merged. See About protected branches.

Note

A job that is skipped will report its status as "Success". It will not prevent a pull request from merging, even if it is a required check.

Types of status checks on GitHub

There are two types of status checks on GitHub:

TypeDetail levelCreated by
ChecksDetailed output, annotations, and messages.GitHub Apps, including GitHub Actions.
Commit statusesA simpler status for a commit.External services and integrations.

Note

GitHub Actions generates checks, not commit statuses, when workflows are run.

Organization owners and users with push access to a repository can create checks and commit statuses with GitHub's API. See REST API endpoints for checks and REST API endpoints for commit statuses.

Checks

Checks can include build logs, test results, annotations, and links to more detail. In a pull request, the Checks tab helps you understand which validations ran and why a check passed or failed.

Screenshot of the "Checks" tab of a pull request. The "Checks" tab and the dropdown menu to select a commit are both outlined in dark orange.

Note

The Checks tab is populated for pull requests only if you set up checks, not commit statuses, for the repository.

When a check points to a specific line, details can also appear in the Files tab of the pull request. This helps reviewers connect automated feedback to the code being changed.

Skipping and requesting checks for individual commits

Some repositories allow checks to be skipped or requested for individual commits. This can be useful when a check is not relevant to a specific change, or when checks are not requested automatically.

For GitHub Actions workflows, you can skip workflow runs triggered by the push and pull_request events by including a skip instruction in your commit message. See Skipping workflow runs.

Alternatively, to skip or request all checks for your commit, add one of the following trailer lines to the end of your commit message:

  • To skip checks for a commit, type your commit message and a short, meaningful description of your changes. After your commit description, before the closing quotation, add two empty lines followed by skip-checks: true:

    $ git commit -m "Update README
    >
    >
    skip-checks: true"
    
  • To request checks for a commit, type your commit message and a short, meaningful description of your changes. After your commit description, before the closing quotation, add two empty lines followed by request-checks: true:

    $ git commit -m