---
title: "Skip a GitHub check run"
method: POST
path: "/v1/check-runs/{check_run_id}/skip"
tags: ["GitHub Check Runs"]
---

# Skip a GitHub check run

`POST /v1/check-runs/{check_run_id}/skip`

## Request

- Base URL: `https://api.gitguardian.com`
- URL: `https://api.gitguardian.com/v1/check-runs/{check_run_id}/skip`
- Auth: HTTP bearer

Skip a GitHub check run that blocks a pull request, as the "Skip" buttons of the
check run do on GitHub. This works even when the buttons are disabled in the
workspace settings.

The check run is marked as skipped on GitHub. Its secret incidents and
occurrences get the matching `CHECK_RUN_SKIP_*` tag, and an activity log entry
is added on each incident. When the check run auto-heal playbook is active, the
incidents are ignored with the same reason.

Get the check run id from the check run list, filtered on the secret incident.

Only Manager personal access tokens and service account tokens can skip a check
run. Only a check run that failed on GitHub can be skipped.

## Path parameters

- `check_run_id` integer, required

## Request body

- object
  - `reason` 'false_positive' | 'low_risk' | 'test_credential', required

## Response `200`

Skipped check run.

- object
  - `id` integer
  - `created_at` string, date-time
  - `repository_full_name` string: Full name of the GitHub repository
  - `commit_sha` string: SHA of the head commit the check run evaluated
  - `pull_requests` object[]: Pull requests the check run is reported on (10 at most)
    - `number` integer
    - `state` 'OPEN' | 'CLOSED' | 'MERGED'
    - `head_branch` string, nullable
    - `base_branch` string, nullable
  - `github_status` 'queued' | 'in_progress' | 'completed': Status of the check run on GitHub
  - `github_conclusion` 'action_required' | 'cancelled' | 'failure' | 'neutral' | 'success' | 'skipped' | 'stale' | 'timed_out', nullable: Conclusion of the check run on GitHub. Null while the check run is running.
  - `ignored_at` string, date-time, nullable: Date the check run was skipped
  - `ignore_reason` 'false_positive' | 'low_risk' | 'test_credential' | 'skipped_from_fork', nullable: Reason given when the check run was skipped. `skipped_from_fork` is set when the check run of a pull request from a fork is skipped on GitHub.

## Other responses

- `400`: Invalid data
- `401`: Invalid API key
- `403`: Permission denied
- `404`: Resource not found
- `409`: The check run cannot be skipped: it is already skipped, another request is skipping it, it did not fail on GitHub, or GitHub refused the update (for example, the check run no longer exists on GitHub). A retry does not help. Nothing was changed.
- `503`: GitHub is unavailable or rate limits GitGuardian, so the check run was not changed: retry later. The API can also be under maintenance, with the `X-Maintenance` header set.

## Changes

- **2026-10-16** `dbe1b6116db5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gitguardian/apis/gitguardian-api/changes/v1/check-runs/:check_run_id/skip/post.md)

---

[API](https://skmtc.dev/gitguardian/apis/gitguardian-api.md) - [All operations](https://skmtc.dev/gitguardian/apis/gitguardian-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitguardian/apis/gitguardian-api/revisions/5829df7b9045?raw)
