Quick Start Guide
Get your GitHub Webhook Server up and running in minutes. This guide will walk you through the essential steps to deploy and test your webhook server.This quickstart uses container deployment (recommended). For other installation methods, see Installation.
Prerequisites Check
Before starting, ensure you have:- Container runtime (Podman or Docker) installed
- GitHub Personal Access Token with admin rights to your repositories
- GitHub App created (or use PAT for initial testing)
- Public URL for webhook delivery (or use smee.io for testing)
Step-by-Step Setup
Create Data Directory and Configuration
Create a directory for your configuration and logs:Create
config.yaml with minimal configuration:config.yaml
Replace
github-app-id, webhook-ip, and github-tokens with your actual values. The schema URL enables IDE autocompletion.Start the Webhook Server
Run the container with your configuration:Verify the server is running:Expected response:
Configure GitHub Webhook
Set up the webhook in your GitHub repository:
- Navigate to your repository settings on GitHub
- Click Webhooks → Add webhook
- Configure the webhook:
- Payload URL:
https://your-domain.com/webhook_server - Content type:
application/json - Secret: Your webhook secret (same as
WEBHOOK_SECRETenv var) - Events: Select “Send me everything” or choose specific events:
- Pull requests
- Issue comments
- Push
- Pull request reviews
- Check runs
- Payload URL:
- Click Add webhook
Test Webhook Delivery
Create a test pull request to verify webhook processing:Create a pull request on GitHub, then check the logs:You should see:
- Webhook received and queued for processing
- PR labels added (size label, branch label)
- Reviewer assignment (if OWNERS file exists)
- Check runs created
Verify Installation
Check Server Health
View Recent Webhooks
If log viewer is enabled (ENABLE_LOG_SERVER=true):
Test Webhook Delivery
In GitHub repository settings:- Go to Webhooks
- Click on your webhook
- Scroll to Recent Deliveries
- Click Redeliver on any delivery to test
User Commands
Interact with pull requests through comment-based commands:| Command | Description | Example |
|---|---|---|
/verified | Mark PR as verified | /verified |
/verified cancel | Remove verification | /verified cancel |
/approve | Approve PR | /approve |
/hold | Block PR merging | /hold |
/hold cancel | Unblock PR merging | /hold cancel |
/retest all | Run all configured tests | /retest all |
/cherry-pick branch1 branch2 | Cherry-pick to branches | /cherry-pick v1.0 v2.0 |
/test-oracle | Request AI test recommendations | /test-oracle |
Commands are processed in real-time as you comment on pull requests. Check the webhook logs to see processing status.
Common Configuration
Enable Pre-commit Checks
config.yaml
Configure Tox Testing
config.yaml
Set Minimum Approvals
config.yaml
Next Steps
Configuration
Explore advanced configuration options for automation, CI/CD, and security
OWNERS Files
Set up OWNERS files for intelligent reviewer assignment
User Commands
Learn all available commands for PR and repository management
Deployment
Production deployment with Docker Compose, Kubernetes, or Systemd
Troubleshooting
Webhook Not Received
- Check GitHub webhook delivery status in repository settings
- Verify firewall allows incoming connections on port 5000
- Ensure
webhook-ipin config matches GitHub webhook URL - Check container logs:
podman logs github-webhook-server
Commands Not Working
- Verify user is in repository collaborators or OWNERS file
- Check if PR is in draft state (most commands blocked on drafts)
- Review webhook logs for error messages
- Ensure GitHub token has required permissions