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

  1. Go to your GitHub organization's Settings → Developer settings → GitHub Apps
  2. Click New GitHub App
  3. 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

PermissionAccessReason
IssuesRead & WriteCreate, update, and label issues
DiscussionsRead & WriteTrack and respond to discussions
Pull requestsReadLink PRs to tickets for resolution tracking
MetadataReadBasic repository information

Organization Permissions

PermissionAccessReason
MembersReadIdentify team members for routing

Subscribe to Events

Enable these webhook events:

Generate a Private Key

  1. In the GitHub App settings, scroll to Private keys
  2. Click Generate a private key
  3. Save the downloaded .pem file securely
  4. Set the file path or contents as GITHUB_PRIVATE_KEY in 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

  1. Go to your GitHub App's public page
  2. Click Install
  3. Select the repositories you want Outpost to track
  4. Confirm the installation

How It Works

Issue Auto-Triage

When a new issue is opened, the GitHub App webhook fires and Outpost:

  1. Creates a ticket in the Outpost database linked to the GitHub issue
  2. Runs AI triage to classify the issue (bug, feature request, question, etc.)
  3. Assigns a priority based on content analysis
  4. Applies labels back to the GitHub issue
  5. Routes the ticket to the appropriate team via routing rules

Bidirectional Sync

Changes in either direction are synchronized:

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.