# GitHub Checks

{% hint style="warning" %}
**Available for Enterprise Tier Only**
{% endhint %}

{% hint style="info" %}
**Permissions required:** GitHub Checks requires the `pull_requests: read` and `checks: write` permissions on the StepSecurity Actions Security GitHub App. If you installed the app before these permissions were introduced, accept them to enable GitHub Checks.
{% endhint %}

GitHub Checks is a powerful feature that helps you monitor and improve the quality of your code by running automated checks on your repositories.&#x20;

By enabling this feature, you can gain better insights into your code’s performance, security, and compliance directly within your GitHub workflow.

## Types Of GitHub Checks

* Harden Runner Baseline Check
* StepSecurity Required Checks
* StepSecurity Optional Checks

### Harden Runner Baseline Check

This check integrates Harden-Runner insights into the GitHub Checks UI, providing developers with immediate feedback on outbound network activity.&#x20;

With this integration, developers no longer need to rely on email or Slack notifications or visit the StepSecurity dashboard to monitor anomalous network calls.

### StepSecurity Required Checks

These are blocking status checks. When enabled, a pull request cannot be merged until all Required Checks pass. Use this to bucket StepSecurity controls (e.g., the StepSecurity GitHub Check) into the “required” set so merges are blocked on them.&#x20;

To ensure StepSecurity Required Checks work for your organization:

* Go to your Organization Settings
* Navigate to Code, planning and automation → Repository → RuleSets
* Create a new ruleset

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FbAP6MWnyFFEagfM8k615%2FScreenshot%202025-09-08%20at%2012.21.05%E2%80%AFPM.png?alt=media&#x26;token=cc418cfa-ba49-4a58-a8a5-9937d6864f80" alt=""><figcaption></figcaption></figure>

* Enable the rule “Require status checks to pass” and include StepSecurity Required Checks in the list of required checks.

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FLWDDHvg38exjIq7vynUH%2FScreenshot%202025-09-08%20at%2011.43.13%E2%80%AFAM.png?alt=media&#x26;token=fe2882dd-89e3-43f1-abcf-d4a8bd60394a" alt=""><figcaption></figcaption></figure>

### StepSecurity Optional Checks

These provide developers with security and quality insights without blocking pull requests. They surface issues for visibility but allow merges to proceed even if they fail.

### How it Works

**Step 1:** Navigate to Configuration under GitHub Checks in your StepSecurity dashboard

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/4526d003-8357-4f4a-a2c5-83e6584c8424/ascreenshot.jpeg?tl_px=0,0\&br_px=2752,1538\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=61,148)

**Step 2:** Select the Controls you want to enable and choose the check type (Required or Optional)

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/5aff3572-b7a1-487e-ae9e-c0ffef1bb2a3/ascreenshot.jpeg?tl_px=0,0\&br_px=3024,1714\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=1043,233)

**Step 3:** Set the cooldown period (between 1–30 days). You can also define exemption packages if your team publishes packages that should not be subject to the cooldown

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FloBLFuKKV0BrhKK5IoyE%2FConfigure%20NPM%20Package%20Cooldown%20in%20GitHub%20Actions%20-%20Step%203.png?alt=media&#x26;token=ca40cdd6-138d-4f17-bc81-b7f7167716b9" alt=""><figcaption></figcaption></figure>

**Step 4:** Select the repositories you want this to apply to, then click Save Changes

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/1d45a238-e697-4c7d-90dc-2f33ecc14593/ascreenshot.jpeg?tl_px=221,128\&br_px=2973,1667\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=524,277)

## **Example: a failing cooldown check**

The walkthrough below uses the `npm Package Cooldown` check as an example. `PyPI Package Cooldown` behaves identically, just against Python dependencies.

**When a check fails.** A developer or bot opens a pull request that adds a `package.json` entry referencing a newly-published npm package. The `npm Package Cooldown` check fails because the package was published within the configured cooldown window (by default, 2 days).

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/afe101d8-e70a-49dc-9d78-1fb8a02b7253/ascreenshot.jpeg?tl_px=0,298\&br_px=2266,1565\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=776,277)

**Seeing the failure in GitHub.** On the PR, click **StepSecurity Required Checks** or **StepSecurity Optional Checks** (depending on how the control is configured)

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/f7405231-628b-4716-9b2f-4e7b9e919f8a/ascreenshot.jpeg?tl_px=0,175\&br_px=2752,1714\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=272,443)

You'll see the full set of checks that ran, which may include:

* `Script Injection`
* `PWN Request`
* `npm Package Compromised Updates`
* `npm Package Cooldown`
* `PyPI Package Compromised Updates`
* `PyPI Package Cooldown`

Click the failing `npm Package Cooldown` check to see details, including the package name, the version, its publish date, and when it will pass the cooldown.

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/13e429e3-e826-4f6e-ba5e-89a70775ca0f/ascreenshot.jpeg?tl_px=0,175\&br_px=2752,1714\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=412,374)

**What happens next.** Once the package version ages beyond the configured cooldown window, the check passes automatically on the next run. No manual intervention is required.

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/d3511e4f-ce4b-4c62-89fa-cca74a73b16e/ascreenshot.jpeg?tl_px=272,175\&br_px=3024,1714\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=728,513)

## Emergency overrides with Approve All

If a newly-published package must be merged immediately (for example, a critical security patch published yesterday), you can override the cooldown check:

* Open the StepSecurity dashboard and go to the recent GitHub check run.

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FPX4swzVAZgQi0ccRzzvr%2FConfigure%20NPM%20Package%20Cooldown%20in%20GitHub%20Actions%20-%20Step%2024.png?alt=media&#x26;token=5c88396d-2019-4177-a782-755712c5c5e4" alt=""><figcaption></figcaption></figure>

* Click Approve All

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/46f09154-0e46-4b3c-ae79-0b065ec68315/ascreenshot.jpeg?tl_px=272,0\&br_px=3024,1538\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=998,95)

* The check passes immediately on the next run

![](https://ajeuwbhvhr.cloudimg.io/https://colony-recorder.s3.amazonaws.com/files/2025-09-04/c205c9ef-0bf9-401c-aa4f-5c040977d553/ascreenshot.jpeg?tl_px=0,175\&br_px=2752,1714\&force_format=jpeg\&q=100\&width=1120.0\&wat=1\&wat_opacity=1\&wat_gravity=northwest\&wat_url=https://colony-recorder.s3.amazonaws.com/images/watermarks/8B5CF6_standard.png\&wat_pad=114,386)

### **Filtering checks by pull request**

You can filter check runs by pull request number. When you view a check in the StepSecurity dashboard, the associated PR number appears as a clickable link. Clicking the PR number shows all checks related to that pull request, with one check run per commit.

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2FLuCx6KlaQlC61JPraKPI%2FScreenshot%202026-02-05%20at%2018.58.15.png?alt=media&#x26;token=8e7c5d2a-12e0-4eae-9ac4-ee6a69b0274e" alt=""><figcaption></figcaption></figure>

Clicking the PR number shows all checks related to that pull request, with one check run per commit.

<figure><img src="https://754495266-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQJRZY4cfEeY3I7DXTOCp%2Fuploads%2F6IK4xAsbpETRYCFWdBLZ%2FScreenshot%202026-02-05%20at%2018.58.24.png?alt=media&#x26;token=5da49bc2-f172-4fc3-8f69-05140cd97454" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stepsecurity.io/github-checks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
