GitHub App Setup
The Outpost GitHub App tracks issues and discussions, auto-triages bug reports, syncs labels, and links GitHub activity to support tickets in the Outpost dashboard.
Create a GitHub App
- Go to your GitHub organization's Settings → Developer settings → GitHub Apps
- Click New GitHub App
- Fill in the details:
- App name: Outpost Support (or your preferred name)
- Homepage URL: Your Outpost dashboard URL
- Webhook URL:
https://your-domain.com/api/github/webhook - Webhook secret: Generate a secure random string
Required Permissions
Repository Permissions
| Permission | Access | Reason |
|---|---|---|
| Issues | Read & Write | Create, update, and label issues |
| Discussions | Read & Write | Track and respond to discussions |
| Pull requests | Read | Link PRs to tickets for resolution tracking |
| Metadata | Read | Basic repository information |
Organization Permissions
| Permission | Access | Reason |
|---|---|---|
| Members | Read | Identify team members for routing |
Subscribe to Events
Enable these webhook events:
- Issues — opened, edited, closed, reopened, labeled, assigned
- Issue comments — created, edited
- Discussion — created, answered, category changed
- Discussion comment — created
- Label — created, edited, deleted (for sync)
Generate a Private Key
- In the GitHub App settings, scroll to Private keys
- Click Generate a private key
- Save the downloaded
.pemfile securely - Set the file path or contents as
GITHUB_PRIVATE_KEYin your environment
Environment Variables
.env env
# GitHub App
GITHUB_APP_ID=123456
GITHUB_PRIVATE_KEY=./github-app.pem
GITHUB_WEBHOOK_SECRET=your-webhook-secret
GITHUB_APP_PORT=3001
Install the App
- Go to your GitHub App's public page
- Click Install
- Select the repositories you want Outpost to track
- Confirm the installation
How It Works
Issue Auto-Triage
When a new issue is opened, the GitHub App webhook fires and Outpost:
- Creates a ticket in the Outpost database linked to the GitHub issue
- Runs AI triage to classify the issue (bug, feature request, question, etc.)
- Assigns a priority based on content analysis
- Applies labels back to the GitHub issue
- Routes the ticket to the appropriate team via routing rules
Bidirectional Sync
Changes in either direction are synchronized:
- Closing a GitHub issue closes the Outpost ticket
- Closing an Outpost ticket closes the GitHub issue
- Labels added in Outpost are applied to the GitHub issue
- Comments sync between platforms
Discussion Tracking
GitHub Discussions are tracked separately from issues. When a discussion is created or receives a new comment, Outpost creates or updates a lightweight tracking entry. Discussions marked as "answered" automatically resolve the associated Outpost ticket.