Step 1: Create a GitHub App
- Go to GitHub.com → your profile photo → Settings → Developer settings → GitHub Apps
- Click New GitHub App
- Fill in the app registration form:
- GitHub App name: choose a unique name (e.g.
bugviper-yourorg) - Homepage URL: the URL of your BugViper frontend (e.g.
https://bugviper.yourcompany.comorhttp://localhost:3000for local development) - Webhook URL: your BugViper instance URL followed by
/api/v1/webhook/onComment— for examplehttps://bugviper.yourcompany.com/api/v1/webhook/onComment - Webhook secret: generate a random secret string. You can use
openssl rand -hex 20to produce one
- GitHub App name: choose a unique name (e.g.
Step 2: Set repository permissions
Under Permissions & events → Repository permissions, grant the following access levels:| Permission | Access level |
|---|---|
| Contents | Read |
| Issues | Read & Write |
| Pull requests | Read & Write |
| Metadata | Read |
| Commit comments | Read & Write |
- Issue comment — triggers the review pipeline when
@bugviper reviewis posted - Pull request — triggers incremental graph updates when a PR is merged
- Push — triggers incremental graph updates when code is pushed to a branch
Step 3: Generate and download the private key
After saving the app:- Scroll down to the Private keys section of your app’s settings page
- Click Generate a private key
- GitHub downloads a
.pemfile — save it somewhere safe on the server that runs BugViper (e.g./etc/bugviper/your-app-name.private-key.pem)
Step 4: Install the app on your account or organization
- In your GitHub App settings, click Install App in the left sidebar
- Choose the account or organization where your repositories live
- Select All repositories or choose specific repositories you want BugViper to access
- Click Install
Step 5: Note your App ID
- Return to your GitHub App settings (Settings → Developer settings → GitHub Apps → your app)
- At the top of the page, copy the App ID — it’s a numeric value like
123456
Environment variables
Once you’ve created and installed the app, set these three variables in your.env file:
GITHUB_APP_ID is the numeric ID from your app’s settings page. GITHUB_PRIVATE_KEY_PATH is the absolute path to the .pem file you downloaded. GITHUB_WEBHOOK_SECRET is the random string you generated when creating the app — it must match exactly what you entered in the GitHub App webhook configuration.
Verify the connection
After setting the environment variables and restarting BugViper, open a pull request on a repository the app has access to and post:- Your GitHub App webhook URL matches your BugViper instance URL +
/api/v1/webhook/onComment - ngrok (or your reverse proxy) is running and forwarding traffic to the BugViper API port
- The Recent Deliveries tab in your GitHub App settings shows the webhook was delivered successfully
Next step
Configure the remaining environment variables your BugViper instance needs:Configure environment variables
Reference for all BugViper environment variables — Neo4j, OpenRouter, Firebase, and review agent settings.