Not your setup? See Which setup do I need?.
On Overcut Cloud, use the managed
Overcut GitHub App instead - no app creation
or environment configuration is needed there.
Prerequisites
- A GitHub organization (or personal account) with admin access, so you can create and install GitHub Apps
- A running self-hosted Overcut deployment with a public HTTPS domain
(
https://<your-overcut-domain>) - Inbound reachability from GitHub.com: GitHub must be able to deliver
webhooks to
https://<your-overcut-domain>/hooks/...over port 443 - The ability to set environment variables on the deployment and restart it
How it works
Your GitHub App is the identity Overcut uses on GitHub:- API access - Overcut authenticates as the app installation and gets short-lived installation tokens to clone repositories, open pull requests, and manage issues. No personal access tokens are involved.
- Webhooks - GitHub delivers events (issues, pull requests, comments, CI runs) to your deployment, signed with the webhook secret you configure.
Step 1: Create the GitHub App
1
Start a new GitHub App
In your GitHub organization, go to Settings -> Developer settings ->
GitHub Apps -> New GitHub App (for a personal account: Settings ->
Developer settings -> GitHub Apps).
- GitHub App name: something identifiable, for example
Overcut (Acme). The name determines the app slug used in the installation URL. - Homepage URL:
https://<your-overcut-domain>
2
Set the callback and setup URLs
Under Identifying and authorizing users, set Callback URL to:Under Post installation, set Setup URL to the same value. This
is required: after a user installs the app, GitHub redirects here with the
installation_id that Overcut stores to complete the connection.3
Configure the webhook
Under Webhook:
- Active: checked
-
Webhook URL:
-
Webhook secret: generate a strong random value and keep it - you set
it on the deployment as
GITHUB_WEBHOOK_SECRETin Step 2:
4
Set the permissions
Under Permissions, configure:Repository permissions
Organization permissions
5
Subscribe to events
Under Subscribe to events, enable exactly these:
- Issues
- Issue comment
- Pull request
- Pull request review
- Pull request review comment
- Pull request review thread
- Workflow run
6
Choose where the app can be installed
Select Only on this account (recommended) unless you need to install
the same app into multiple GitHub organizations.Click Create GitHub App.
7
Collect the credentials
From the app’s settings page, collect:
- App ID (shown in the About section)
- Client ID
- Client secret - click Generate a new client secret
- Private key - click Generate a private key; a
.pemfile downloads - App slug - the URL-safe name visible in the app’s public link
(
https://github.com/apps/<app-slug>)
Step 2: Configure the deployment
Set these environment variables on your deployment:Private key formatting
The value must be a single line, so the downloaded PEM must be flattened with literal\n sequences in place of newlines (Overcut converts them back at
runtime). Generate the value with:
GITHUB_APP_PRIVATE_KEY (no surrounding
quotes needed). It should look like:
Apply the configuration
Restart the deployment so the new environment variables take effect.Step 3: Connect in Overcut
1
Start the connection
In Overcut, open your workspace’s git providers page and click Connect
on the GitHub tile. A popup opens on your GitHub App’s installation
page.
2
Install the app
Choose the account or organization to install into, then select All
repositories or specific repositories. Click Install.GitHub redirects back to your deployment, the popup closes itself, and the
GitHub organization appears as connected in Overcut.
3
Verify webhook delivery
In the GitHub App’s settings, open Advanced -> Recent Deliveries,
open any delivery (or comment on a test issue in a connected repository to
produce one), and confirm the response code is 200.
Troubleshooting
- GitHub tile missing or disabled in Overcut:
INTEGRATION_GITHUB_ENABLEDis nottrue, or the deployment was not restarted after setting it. - Connect popup shows a GitHub 404: the app slug in
GITHUB_APP_INSTALLATION_URLdoes not match your app’s public URL (https://github.com/apps/<app-slug>). - Popup stays on “Please wait…” and never closes: the app’s Setup URL
is missing or wrong. It must be exactly
https://<your-overcut-domain>/github-auth-app/callbackso the redirect carries theinstallation_idback to Overcut. - “Missing Github configuration” in the deployment logs: one of
GITHUB_APP_APP_ID,GITHUB_APP_PRIVATE_KEY, orGITHUB_APP_INSTALLATION_URLis empty, or the private key was pasted with real line breaks instead of\nescapes. - Webhook deliveries fail with 401: the app’s webhook secret and
GITHUB_WEBHOOK_SECRETdo not match. - Webhook deliveries time out: GitHub.com cannot reach
https://<your-overcut-domain>/hooks/github/webhook- check DNS, the TLS certificate, and that port 443 is open to the internet. - Workflows never trigger even though deliveries return 200: the relevant event type is not enabled on the app (see the event list above), or the repository is not included in the app installation.
- CI-triggered workflows never fire: the app is missing the Actions permission or the Workflow run event subscription.
- Pushes that touch
.github/workflowsare rejected: grant the app the Workflows: Read and write permission, then approve the permission update on the installation. - After changing app permissions nothing happens: permission changes must be approved on the installation by an organization admin (GitHub sends the org an approval request).