> For the complete documentation index, see [llms.txt](https://docs.nullify.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nullify.ai/enterprise-tier/github-self-hosted-app.md).

# Self-Hosted GitHub App

Nullify is currently available as a GitHub App that can be installed across select repositories or all current and future repositories, allowing for organization-wide coverage in one click.

Please reach out to our team to assist with your org setup.

## Install Nullify

### Setting up your GitHub application

See [creating a GitHub App](https://docs.github.com/apps/building-github-apps/creating-a-github-app/) for general guidance on setting up GitHub Apps.

1. Go to `https://github.com/organizations/<insert-your-org-name>/settings/apps/new`
2. **GitHub App Name:** Enter the name of your application.
3. **Homepage URL:** Enter `https://nullify.ai`

<div align="left"><figure><img src="/files/Wd6vngXopGJNO7cCWpi8" alt=""><figcaption><p>GitHub App name</p></figcaption></figure> <figure><img src="/files/J28PyVNKNjhWMpQR0Nke" alt=""><figcaption><p>Homepage URL</p></figcaption></figure> <figure><img src="/files/so5mBcJJrBstno2YAWYA" alt=""><figcaption><p>Webhook URL</p></figcaption></figure></div>

4. Add the **Callback URL** (provided to you by Nullify)
5. Enable **Request user authorization (OAuth) during installation**
6. Enable **Device Flow**

**Webhook:**

7. Add the **Webhook URL**. It is of the form `https://api.<your-organization>.nullify.ai/core/github/webhook`.
8. Add the **Webhook secret** (a shared secret you generate and also send to Nullify)
9. Enable **SSL verification**

**Display Information:**

10. Add the Nullify logo (amethyst only) available from [https://docs.nullify.ai/more-info/brand-kit](/more-info/brand-kit.md)

<figure><img src="/files/CrudHJCRvtCvEFnlOJpq" alt=""><figcaption><p>Nullify logo added to GitHub App display information</p></figcaption></figure>

11. Grant access to the following **Repository** **permissions**:

| **Permission**                                   | **Access**   | **Explanation**                                               |
| ------------------------------------------------ | ------------ | ------------------------------------------------------------- |
| Actions                                          | Read-only    | Read required for the autofix workflow to fix failing CI jobs |
| Checks                                           | Read & write | Write required to create and modify Check Runs                |
| Contents                                         | Read & write | Write required for creating and resolving comments            |
| Issues                                           | Read & write | Write required to create and modify Issues                    |
| <p><strong>GitHub.com:</strong> Metadata<br></p> | Read-only    | This setting is automatically set by GitHub                   |
| Commit statuses                                  | Read-only    | Required to receive CI build status events from any provider  |
| Pull Requests                                    | Read & write | Write required to create and modify Pull Requests             |

12. Grant access to the following **Organization** **permissions**:

| **Permission** | **Access** | **Explanation** |
| -------------- | ---------- | --------------- |
| Members        | Read       | Read teams      |

13. Subscribe to the following **Events**:

| **Event Type**              | **Subscription** |
| --------------------------- | ---------------- |
| Pull Request                | Required         |
| Push                        | Required         |
| Check Run                   | Required         |
| Check suite                 | Required         |
| Commit comment              | Required         |
| Issues                      | Required         |
| Issue Comment               | Required         |
| Pull Request Review         | Required         |
| Pull Request Review Comment | Required         |
| Pull Request Review Thread  | Required         |
| Repository                  | Required         |
| Status                      | Required         |

14. In the "Where can this GitHub App be installed?" section, select **Only on this account**. Then select **Create GitHub App**.

<figure><img src="/files/6xVx2nLRuofH3aDpaMyO" alt=""><figcaption></figcaption></figure>

15. Navigate to the **Developer settings** of your new App. In **General**, get the App ID and Client ID.

<div align="left"><figure><img src="/files/pxEHxRZkbF8exjWjYXiu" alt=""><figcaption><p>GitHub App - Developer settings</p></figcaption></figure> <figure><img src="/files/Oanxr2U36TIwejD5JMsK" alt=""><figcaption><p>App ID &#x26; Client ID</p></figcaption></figure></div>

16. In **General**, generate a new Client secret.
17. In **General**, generate a private key:

<figure><img src="/files/uZvN9pwFMqP30IUjwFZ0" alt=""><figcaption><p>Private key</p></figcaption></figure>

18. Send the App ID, Client ID, Client Secret and Private Key to Nullify. This can be done via a password manager.
19. Wait for your stack to be provisioned.
20. In **Install App**, install the App in your organization:

<figure><img src="/files/KkPMsfRucGRs0Va8EOvt" alt=""><figcaption><p>Install App</p></figcaption></figure>

21. In **Repository access**, select the repositories you would like to install Nullify:

<figure><img src="/files/HtpBPbZGQAaJqY2QyG3s" alt=""><figcaption><p>Repository access</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.nullify.ai/enterprise-tier/github-self-hosted-app.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.
