Make sure you’ve completed the GitHub App setup before proceeding.
Environment Variables
Add the following environment variables to your Kaneo deployment:GitHub sign-in uses separate OAuth variables (
GITHUB_OAUTH_CLIENT_ID / GITHUB_OAUTH_CLIENT_SECRET). You can run the integration without enabling GitHub SSO. See GitHub SSO and Environment variables.Variable Reference
| Variable | Description | Required | Example |
|---|---|---|---|
GITHUB_APP_ID | Your GitHub App’s ID | ✅ | 123456 |
GITHUB_PRIVATE_KEY | Full private key content (with newlines) | ✅ | -----BEGIN RSA... |
GITHUB_WEBHOOK_SECRET | Secret for webhook verification | ✅ | your-secret |
GITHUB_APP_NAME | App slug for installation URLs in the UI | ⚠️ | kaneo-mycompany |
Deployment Examples
Docker Compose
Update yourcompose.yml file:
Kubernetes
Create a secret for your GitHub credentials:Environment File
For development or simple deployments, create a.env file:
Connecting Repositories
Once your environment variables are configured and your backend is restarted, you can connect projects to GitHub repositories.Navigate to Project Settings
- Open your Kaneo project
- Go to Project Settings
- Find the GitHub Integration section
Connect RepositoryYou have two options to connect a repository:Option A: Browse Repositories
- Click “Browse Repositories”
- Select from repositories where your GitHub App is installed
- Click on the desired repository
- Enter the Repository Owner (username or organization)
- Enter the Repository Name
- Click “Verify Installation”
Testing the Integration
After connecting a repository, test the integration thoroughly:Test Task to Issue CreationCreate a new task in your connected Kaneo project with:
- A clear title
- A description
- Set priority and status
- A new issue was created
- The issue has
priority:*andstatus:*labels - A comment links back to the Kaneo task
Test Automatic Status TransitionsTest branch-based workflow:
- Note your task number (e.g.,
PROJ-123) - Create and push a branch matching the pattern (e.g.,
proj-123) - Verify the task moves to “in-progress”
- Open a PR from that branch
- Verify the task moves to “in-review”
- Merge the PR
- Verify the task moves to “done”
Default branch pattern is
{slug}-{number}. You can customize this in project settings.Test Issue to Task SyncIn GitHub:
- Create a new issue
- Add labels like
priority:highorstatus:in-progress
- Verify a task was created from the issue
- Check that priority and status match the labels
- Confirm the task links to the GitHub issue
Advanced Configuration
Branch Naming Patterns
Configure how Kaneo matches branches to tasks in your project’s GitHub integration settings: Predefined Patterns:{slug}-{number}(default) - e.g.,proj-123{slug}-{number}-{title}- e.g.,proj-123-fix-bug{number}- e.g.,123{number}-{title}- e.g.,123-fix-bugfeature/{slug}-{number}- e.g.,feature/proj-123fix/{slug}-{number}- e.g.,fix/proj-123
Status Transition Configuration
Customize when tasks automatically change status:| Event | Default Status | Customizable |
|---|---|---|
| Branch Push | in-progress | ✅ |
| PR Opened | in-review | ✅ |
| PR Merged | done | ✅ |
Label Synchronization
Kaneo automatically creates and syncs these label types: System Labels (managed automatically):priority:low,priority:medium,priority:high,priority:urgentstatus:to-do,status:in-progress,status:in-review,status:done,status:planned,status:archived
- Any labels added to GitHub issues (not starting with
priority:orstatus:) are synced to Kaneo - Labels added in Kaneo can be synced to GitHub (if configured)
Multiple Organizations
If you need to connect repositories from multiple GitHub organizations:- Install your GitHub App on each organization
- Grant appropriate permissions for each organization
- Each Kaneo project can connect to any repository where your app is installed
Having issues? Check our troubleshooting guide for common problems and solutions.