-
Go to GitHub App Settings
- Navigate to: https://github.com/organizations/pulseengine/settings/apps
- Click "New GitHub App"
-
Fill in App Details
- GitHub App name:
Temper - Homepage URL:
https://github.com/pulseengine/temper - Description:
Automatically configures repositories with standard merge settings - Callback URL: Leave empty (not needed for this app)
- GitHub App name:
-
Set Webhook Configuration
- Webhook URL:
https://your-server-domain.com/webhook(replace with your actual domain) - Webhook Secret: Click "Generate a new secret" and save it securely
- SSL verification: Enabled (recommended)
- Active: Checked
- Webhook URL:
- Contents: Read & Write
- Issues: Read & Write
- Metadata: Read-only
- Pull Requests: Read & Write
- Members: Read-only
- Metadata: Read-only
- None required
Subscribe to these events:
- Repository (repository.created)
- Issue comment (issue_comment.created)
- Push (optional, for future features)
- Pull request (optional, for future features)
- Click "Generate a private key" button
- A
.pemfile will download automatically - Save this file securely - it cannot be retrieved again!
- Store the key in your
.envfile asPRIVATE_KEY
- Click "Install App" button
- Select "Only select repositories" or "All repositories"
- Choose the repositories to install on (recommend starting with a few test repos)
- Click "Install"
Create a .env file in your project root:
cp .env.example .envEdit the .env file with your actual credentials:
APP_ID=123456 # From GitHub App settings
PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----..." # Contents of .pem file
WEBHOOK_SECRET=your_webhook_secret_here # From webhook setup
PORT=3000
ORGANIZATION=pulseengine
Choose one of these deployment methods:
npm install
npm startdocker build -t temper .
docker run -p 3000:3000 \
-e APP_ID=your_app_id \
-e PRIVATE_KEY="$(cat private-key.pem)" \
-e WEBHOOK_SECRET=your_webhook_secret \
temper- Check logs: Ensure the app started without errors
- Test manually: Create a test repository and verify it gets configured
- Check issues: The bot should create a "Repository Configuration" issue
- Monitor logs: Set up log monitoring
- Error handling: Configure alerts for errors
- Updates: Keep dependencies updated
- Backups: Regularly backup your private key
- Check: Webhook URL is correct and accessible
- Fix: Ensure your server is running and reachable from the internet
- Check: App has correct permissions
- Fix: Review and update permissions in GitHub App settings
- Check: Private key is correctly formatted
- Fix: Ensure the private key is properly copied to
.envfile
- Check: API rate limits
- Fix: Consider adding rate limit handling or upgrading GitHub plan
- Never commit private keys - Keep
.envand.pemfiles out of Git - Use HTTPS - Always use HTTPS for webhook URLs
- Rotate secrets - Regularly rotate webhook secrets and private keys
- Limit access - Only grant necessary permissions
- Monitor activity - Review app activity in GitHub settings
Your GitHub App is now set up and ready to automatically configure repositories!