docs
v0.7.8

Connecting GitHub

Codality integrates with GitHub via a GitHub App. The app enables PR creation, check runs, webhooks, and the CI feedback loop.

Setup process

Go to Admin → GitHub tab and click Connect GitHub App.

Codality uses the GitHub App manifest flow:

  1. Codality generates a manifest describing the app's permissions and webhooks
  2. You are redirected to GitHub to approve creating the app
  3. GitHub creates the app under your account and redirects back
  4. Codality saves the app credentials automatically to your environment variables

This takes about 30 seconds.

Installing the app

After the app is created, you need to install it:

  1. The GitHub tab shows an Install on GitHub button
  2. Click it to go to GitHub's installation page
  3. Choose which repositories the app can access (all or select)
  4. Confirm the installation
  5. You are redirected back to Codality

The GitHub tab shows connection status:

  • App ID and Client ID — Identify your GitHub App
  • Private Key — ✓ Configured or ✗ Missing
  • Webhook Secret — ✓ Configured or ✗ Missing
  • Installation — ✓ Installed (with ID) or ⚠ Not installed

Permissions

The GitHub App requests these permissions:

Permission Access Purpose
Contents Read & write Push branches, read files
Pull requests Read & write Create and update PRs
Checks Read & write Create check runs for agent and review status
Issues Read Read issue comments on PRs
Webhooks Receive events for PRs, checks, comments

GitHub Enterprise

For GitHub Enterprise Server, set the GITHUB_API_BASE_URL environment variable to your GHE API endpoint (e.g., https://github.yourcompany.com/api/v3).

Troubleshooting

App created but not installed: Click the install link in the GitHub tab. The app needs to be installed on your account or organization.

Webhooks not arriving: Check that your server is accessible from the internet. GitHub sends webhooks to your APP_URL. Verify the webhook secret matches. Check Project Settings → Webhooks for recent events.

Private key missing: This usually means the manifest callback failed to save credentials. You can manually set GITHUB_PRIVATE_KEY in the environment variables.