> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qodo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Qodo on GitHub (on-premises)

> Install and configure the GitHub integration for Qodo on-premises deployments.

This guide helps you install and configure Qodo on-premises with GitHub. You can install it for a single repository or expand it across multiple organizations as needed.

Assuming your Qodo environment is already set up, configuring GitHub typically takes about 20 minutes. This includes creating a GitHub App, configuring webhooks, setting permissions, and installing the app.

Once complete, Qodo processes pull requests and delivers actionable output such as code reviews and insights, directly in your PRs.

## Prerequisites

Before you begin, ensure you have:

* **A Qodo on-premises deployment.** You will receive your Qodo on-premises URL from your Qodo Account Manager. It typically looks like: `qodo-merge.yourcompanyname.qodo.ai`
* **System administrator access to your GitHub organization.**

## Installation

### Step 1: Navigate to the GitHub Apps section

<Steps>
  <Step>
    Log in to GitHub using an administrative account.
  </Step>

  <Step>
    Click your profile picture → **Your organizations**.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-73.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=afde2c37406e37c4d42b79dad7d29f43" alt="GitHub profile picture menu with Your organizations option" width="236" height="486" data-path="images/qodo-documentation/code-review/image-73.png" />
    </Frame>
  </Step>

  <Step>
    Select your organization.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-74.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=8a55e4bd790c8e06e0a0f98d0f87d2d0" alt="GitHub organizations list" width="856" height="156" data-path="images/qodo-documentation/code-review/image-74.png" />
    </Frame>
  </Step>

  <Step>
    Click **Settings**.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-75.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=001be1867cd0cc939c7ab9e741a8f8c0" alt="GitHub organization settings button" width="958" height="402" data-path="images/qodo-documentation/code-review/image-75.png" />
    </Frame>
  </Step>

  <Step>
    Go to **Developer settings → GitHub Apps**.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-76.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=543a93b9a1c15eb3890ada99259f9479" alt="GitHub Developer settings with GitHub Apps menu item" width="351" height="150" data-path="images/qodo-documentation/code-review/image-76.png" />
    </Frame>
  </Step>

  <Step>
    Click **New GitHub App**.
  </Step>
</Steps>

### Step 2: Create the GitHub App

<Steps>
  <Step>
    Register a new GitHub App with the following settings:

    * **App name:** Qodo
    * **Homepage URL:** `https://qodo.ai`

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-77.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=af999bbc82aaf34025f34e9bc3402813" alt="GitHub App registration form with App name and Homepage URL fields" width="1638" height="1088" data-path="images/qodo-documentation/code-review/image-77.png" />
    </Frame>
  </Step>

  <Step>
    Configure the webhook:

    * Check the **Active** checkbox.
    * **Webhook URL:** `https://qodo-merge.[yourcompanyname].qodo.ai/api/v1/github_webhooks`
    * **Secret:** generate a strong random secret and save it. You will need it to configure the Qodo service.
    * Select **Enable SSL verification**.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-78.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=95636bac8074e2331f66b7a106cefd3f" alt="GitHub App webhook configuration with URL, secret, and SSL verification fields" width="876" height="496" data-path="images/qodo-documentation/code-review/image-78.png" />
    </Frame>
  </Step>

  <Step>
    Set the following repository permissions:

    | Permission    | Access         |
    | ------------- | -------------- |
    | Actions       | Read-only      |
    | Checks        | Read-only      |
    | Contents      | Read and write |
    | Discussions   | Read and write |
    | Issues        | Read and write |
    | Pull requests | Read and write |
  </Step>

  <Step>
    Subscribe to the following events:

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-85.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=9d7d346fef810a1f809090f2e4815eb5" alt="GitHub App event subscriptions page" width="773" height="1020" data-path="images/qodo-documentation/code-review/image-85.png" />
    </Frame>
  </Step>

  <Step>
    Under **Where can this GitHub App be installed?**, choose **Any account**. This avoids creating a separate application per organization.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-86.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=7539ad020f64f66499bf4c625e592cb8" alt="GitHub App installation scope selection showing Any account option" width="576" height="178" data-path="images/qodo-documentation/code-review/image-86.png" />
    </Frame>
  </Step>

  <Step>
    Click **Create GitHub App**.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-87.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=4e5d1b7ff99780e8d3aed83836edca37" alt="GitHub Create GitHub App button" width="179" height="54" data-path="images/qodo-documentation/code-review/image-87.png" />
    </Frame>
  </Step>
</Steps>

### Step 3: Post-creation actions

<Steps>
  <Step>
    Note the **App ID**. You will need it for Qodo configuration.

    <Frame>
      <img src="https://mintcdn.com/qodo/0-xdxIQcOR89aG3r/images/qodo-documentation/code-review/image-88.png?fit=max&auto=format&n=0-xdxIQcOR89aG3r&q=85&s=85c2a701c06c6af85b4266224e7f905b" alt="GitHub App details page showing App ID" width="820" height="371" data-path="images/qodo-documentation/code-review/image-88.png" />
    </Frame>
  </Step>

  <Step>
    Generate a **private key**. You will need it for Qodo configuration.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-89.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=4e044a764b2ed3c1b9d636363c73ea03" alt="GitHub App private key generation section" width="715" height="312" data-path="images/qodo-documentation/code-review/image-89.png" />
    </Frame>
  </Step>

  <Step>
    Upload the Qodo logo to use on GitHub posts.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-90.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=976ee18fd2c558afa7e15f317967213c" alt="GitHub App logo upload field" width="780" height="276" data-path="images/qodo-documentation/code-review/image-90.png" />
    </Frame>
  </Step>
</Steps>

### Step 4: Install the app

<Steps>
  <Step>
    Go to **Your Organization → Settings → Developer Settings → GitHub Apps**.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-92.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=3538557f1baf86b5a384dcaa4d0969c5" alt="GitHub Developer Settings GitHub Apps page" width="335" height="186" data-path="images/qodo-documentation/code-review/image-92.png" />
    </Frame>
  </Step>

  <Step>
    Click the Qodo app name.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-93.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=0a898c88bb3e6f79d60e6fa1e294c4da" alt="GitHub Apps list showing Qodo app" width="720" height="175" data-path="images/qodo-documentation/code-review/image-93.png" />
    </Frame>
  </Step>

  <Step>
    Click **Install** on each relevant organization.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-94.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=f002d8a50ca7bb9d343f46578dd36785" alt="GitHub App install page showing Install button" width="718" height="194" data-path="images/qodo-documentation/code-review/image-94.png" />
    </Frame>
  </Step>
</Steps>

### Step 5: Configure repository access

<Steps>
  <Step>
    Go to **Settings → Developer Settings → GitHub Apps** in your organization.
  </Step>

  <Step>
    Click **Configure** on the Qodo app.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-95.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=d53813b6ba5f1575bfcb64ddbe24605d" alt="GitHub Apps list with Configure button for Qodo app" width="1762" height="138" data-path="images/qodo-documentation/code-review/image-95.png" />
    </Frame>
  </Step>

  <Step>
    Under **Repository Access**, choose **Only select repositories** and select the repositories to include.

    <Frame>
      <img src="https://mintcdn.com/qodo/Yz8c9riGXj3O1o5T/images/qodo-documentation/code-review/image-96.png?fit=max&auto=format&n=Yz8c9riGXj3O1o5T&q=85&s=f21f1767b9b1feb8c2fb6230fa969cd9" alt="GitHub App repository access section with Only select repositories option" width="1068" height="632" data-path="images/qodo-documentation/code-review/image-96.png" />
    </Frame>
  </Step>
</Steps>

### Step 6: Configure your Qodo instance

Add the following details to your Qodo on-premises configuration:

```
# GitHub App ID
app_id = <your-app-id>

# Shared secret for webhook verification
webhook_secret = "your-webhook-secret-here"

# Private key (.pem file)

# Organization name(s) where the app is installed
```

<Note>
  The organization name is available in your organization's settings in GitHub. You can provide multiple organizations if the app is installed in more than one.
</Note>

<Note>
  For production environments, follow your organization's secret management procedures to securely store these credentials.
</Note>

## Verify the installation

<Steps>
  <Step>
    Open a new pull request in one of the configured repositories and confirm that Qodo is triggered automatically.
  </Step>

  <Step>
    Add a comment using one of the supported commands:

    * `/agentic_describe`
    * `/agentic_review`

    Qodo should respond with a review or PR summary directly on the pull request.
  </Step>
</Steps>

## Troubleshooting

If Qodo is not responding:

* Verify that the pull request is in a repository selected in the app settings.
* Contact your Qodo Account Manager for assistance.

## Next steps

[Using Qodo in PRs](/code-review/get-started/use-qodo-in-prs): Get the most out of Qodo.
