This configuration applies to Qodo multi-tenant, single-tenant, and on-premises deployments on GitHub Enterprise Server.
- OAuth App: Links each user’s Qodo account to their GitHub Enterprise Server account.
- Qodo-generated GitHub App: Connects Qodo to repositories and provides the permission information used to filter repository access.
If your Qodo deployment already has a GitHub Enterprise Server integration, see Replacing an existing installation.
Prerequisites
Before you begin, confirm that:- You can sign in to your Qodo deployment.
- Qodo can reach your GitHub Enterprise Server instance over HTTPS.
- For on-premises deployments: Your Qodo deployment runs Helm chart version 7.20.0 or later.
Step 1: Create the OAuth App
Role: GitHub Enterprise Server administrator. Create an OAuth App so each user can link their GitHub Enterprise Server account to their Qodo account.1
In GitHub Enterprise Server, open Settings.
2
Go to Developer settings > OAuth Apps.
3
Select New OAuth App.
4
Create the app under the appropriate account or organization.
5
Enter the following values, replacing the examples with your deployment URLs.
The callback URL must use the publicly accessible Platform API URL. Do not use an internal Kubernetes service URL. This callback is for account linking and is different from the callback used for SSO.
6
Create the OAuth App.
7
Copy the Client ID and generate a Client secret.Follow these guidelines:
- Share the Client secret through your organization’s approved secret manager. Do not send it in chat or tickets, include it in frontend configuration, or commit it to source control.
- Use a separate OAuth App for each environment where appropriate.
- Do not delete the OAuth App when replacing the GitHub App. The OAuth App handles account linking and is separate from the GitHub App used to connect repositories.
Step 2: Install the Qodo-generated GitHub App
Role: GitHub Enterprise Server organization or app administrator, working with a Qodo administrator. Create a GitHub App through Qodo. The app requests the permissions required for repository access filtering.1
Sign in to Qodo with an administrator account.
2
Go to Integrations and select Add installation.
3
Select GitHub Server and enter your GitHub Enterprise Server organization URL.
4
Follow the installation wizard. Qodo creates the GitHub App with the required permissions.
5
If the requested app name is already in use, choose a unique name.
6
Review the requested permissions and install the app on the repositories approved for Qodo access.
7
Confirm that the installation is active and repository synchronization succeeds.
Retain all other permissions requested. These read-only permissions do not grant users GitHub administrator access.
Step 3: Configure Qodo
Role: Kubernetes or DevOps operator. Configure Qodo with the OAuth App credentials and the hostname of your GitHub Enterprise Server instance.1
Create a Kubernetes Secret
Create a Secret containing the OAuth App Client secret:Replace
<namespace> with your Qodo namespace and provide the Client secret generated when you created the OAuth App.The Secret name must be qodo-platform-github-connect, and its key must be DYNACONF_AUTH__GITHUB_CONNECT__CLIENT_SECRET.2
Update the deployment configuration
Rules and guidelines:
- Set
filteringEnabledtofalseonly when configuring repository access filtering for the first time. This allows Qodo to calculate and verify repository permissions before filtering repository visibility. - If filtering is already enabled, preserve the existing setting unless an approved change requires otherwise. Disabling filtering restores unfiltered repository access.
- Preserve existing configuration values and apply changes through your normal Helm or GitOps deployment process. Do not patch running workloads manually. Replace the example hostname, Client ID, and URLs with the values for your deployment. The GitHub host value is the hostname only, without the scheme or path.
Step 4: Link a GitHub account
Role: Each Qodo user. Each user must link their GitHub Enterprise Server account so Qodo can associate their identity with the repository permissions provided by the GitHub App.While repository access filtering is disabled, users must link their accounts manually. Qodo does not display the automatic account-linking prompt in this state.
1
Sign in to Qodo Portal using your existing login or SSO configuration.
2
In the bottom-left corner, open your profile menu.
3
Select Link your Git user account, then select GitHub.
4
Authorize the OAuth App on your GitHub Enterprise Server instance.
5
Return to Qodo and confirm that your GitHub username appears as linked.
Verify repository permissions
Before enabling filtering, confirm that the GitHub App installation is active and that repositories appear in Qodo as expected. To verify:- In the Qodo portal, check that the repositories installed through the GitHub App are visible.
- If expected repositories are missing or permissions appear incorrect:
- Confirm the GitHub App installation is active and includes the required repositories.
- Check for pending permission approvals in the GitHub App settings in GitHub Enterprise Server.
- Confirm the GitHub App has all four required permissions listed above.
- If the issue persists after checking the installation, contact Qodo support to recalculate repository permissions.
Step 5: Enable repository access filtering
Role: Kubernetes or DevOps operator. Enable filtering only after repository permissions have been calculated and verified.1
Update your deployment configuration:
2
Deploy the change through your normal Helm or GitOps workflow, then hard-refresh the Qodo portal.
Step 6: Verify the configuration
Test with users whose GitHub Enterprise Server repository access is known.- A repository the user can access in GitHub Enterprise Server should be visible to that user in Qodo.
- A repository the user cannot access in GitHub Enterprise Server should be hidden from that user in Qodo.
- An unlinked user with an active supported GitHub Enterprise Server installation is prompted to link their account.
- A user who has already linked their account is not prompted to link it again.
Replacing an existing installation
Use this procedure if GitHub Server is already configured in your Qodo deployment and you need to replace the existing GitHub App with one generated from Qodo’s updated manifest. Rules and guidelines:- Schedule a maintenance window before starting. Removing the existing installation interrupts Qodo reviews and webhooks until the replacement setup is complete.
- Do not delete the OAuth App. It handles account linking and is separate from the GitHub App installation.
- Do not reuse the old GitHub App configuration. Create a new installation through Qodo to apply the required permissions.
1
Record the approved repository selection and any installation-specific settings that must be restored.
2
In the Qodo portal, go to Integrations and remove the existing GitHub Server installation.
3
Confirm the uninstall in GitHub Enterprise Server. If the app remains installed, ask the installation owner to uninstall it.
4
In the Qodo portal, go to Integrations, click Add installation and select GitHub Server.
5
Enter your GitHub Enterprise Server organization URL.
6
Follow the wizard to create a new GitHub App through Qodo. If the app name is already in use, choose a unique name.
7
Review the requested permissions and install the new app on the approved repositories.
8
Confirm that the new installation is active and repository synchronization succeeds.
9
Reapply any installation-specific settings you recorded earlier.
10
Create the OAuth App, as described in Create the OAuth App. An existing installation does not have one, because account linking is new.
11
Complete the Qodo configuration, account linking and permission verification, and filtering enablement steps as needed.
Troubleshooting
Repository permissions are missing or incorrect
Repository permissions are missing or incorrect
Check the GitHub App installation and its permissions, including any pending approvals. After correcting the installation or permissions, recalculate repository permissions before enabling or changing filtering.
A user is not prompted to link their account
A user is not prompted to link their account
Confirm that repository access filtering is enabled and that the user has not already linked their GitHub Enterprise Server account. Users who have already linked their account are not prompted again.
The avatar is empty or the administrator interface looks incorrect after disconnecting an account
The avatar is empty or the administrator interface looks incorrect after disconnecting an account
Refresh the portal and sign in again. If the issue persists, contact Qodo support.
Related resources
- For multi-tenant deployments: see Install the GitHub Enterprise server (MT)
- For single-tenant deployments: see Install the GitHub Enterprise server (ST)
- For on-premises deployments: See Install the GitHub Enterprise Server integration (on-premises)