A full-stack application to configure and run automated GitHub Pull Request review bots.
The system listens to GitHub PR events, fetches code changes, converts them into AI-friendly input, evaluates them, and stores structured review results — all managed via a modern web dashboard.
Backend
- Django
- Django REST Framework
- PostgreSQL
- GitHub App (Webhooks + REST API)
Frontend
- React
- Vite
- Tailwind CSS
- Create, update, list, and soft-delete bots
- Configure bot prompts and repository scope
- GitHub App webhook integration
- Fetch PR diffs and changed files
- Convert PR changes into AI-ready text
- Store evaluation scores and comments
- Production-grade UI with Tailwind
- PostgreSQL-backed persistence
- Python 3.11+
- Node.js 18+
- PostgreSQL 14+
- Git
- GitHub account
git clone cd github_bot/backend
python -m venv env env\Scripts\activate
pip install -r requirements.txt
Fill environment variables following .env.example
CREATE DATABASE github_bot;
python manage.py migrate
python manage.py runserver
Backend runs at http://localhost:8000
- Create a GitHub App in Developer Settings
- Enable permissions:
- Pull requests: Read & Write
- Issues: Read & Write
- Metadata: Read
- Subscribe to Pull request events
- Generate private key (.pem)
- Install app on repository
npx smee -u https://smee.io/new -t http://localhost:8000/webhook/github/
cd ../frontend
npm install
npm run dev
Frontend runs at http://localhost:5173
GET /api/bots/
POST /api/bots/
PUT /api/bots/{id}/
PATCH /api/bots/{id}/
DELETE /api/bots/{id}/
POST /webhook/github/
- PR opened on GitHub
- Webhook received by Django
- Signature verified
- PR diff and file changes fetched
- Changes converted to AI input
- Evaluation stored as BotLog
- UI displays bot data