An AI-powered GitHub code review bot that automatically reviews pull requests using Groq LLM and posts inline comments directly on your PRs.
When a pull request is opened or updated in a connected repository, Revix:
- Receives a GitHub webhook event
- Fetches all changed files in the PR
- Sends each file's diff to Groq LLM for review
- Posts inline comments on each file in the PR
- Posts a summary comment with all findings
- Saves all reviews to the database for history
- Backend: ASP.NET Core 9, C#
- Database: PostgreSQL (Supabase)
- ORM: Entity Framework Core
- LLM: Groq API (llama-3.3-70b-versatile)
- GitHub Integration: Octokit.NET
- Auth: GitHub OAuth
- Resilience: Polly (retry logic)
- Encryption: ASP.NET Data Protection
revix/
├── src/
│ ├── revix.API/ # ASP.NET Core Web API
│ │ ├── Controllers/ # Auth, Webhook, Groq endpoints
│ │ └── Program.cs # App configuration
│ ├── Revix.Core/ # Domain layer
│ │ ├── Entities/ # User, Repository, Review, ReviewComment
│ │ ├── Interfaces/ # Service contracts
│ │ └── Models/ # DTOs and payload models
│ └── Revix.Infrastructure/ # Implementation layer
│ ├── Services/ # GitHubService, GroqService, WebhookService, CommentService
│ └── Migrations/ # EF Core migrations
- .NET 9 SDK
- PostgreSQL database (Supabase recommended)
- GitHub OAuth App
- Groq API key
- ngrok (for local development)
git clone https://github.com/omkarpatil14/revix.git
cd revixcd src/revix.API
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=...;Port=6543;Database=postgres;Username=...;Password=...;SSL Mode=Require;Trust Server Certificate=true;No Reset On Close=true;Command Timeout=60;Keepalive=10"
dotnet user-secrets set "GitHub:ClientId" "your_github_client_id"
dotnet user-secrets set "GitHub:ClientSecret" "your_github_client_secret"
dotnet user-secrets set "GitHub:WebhookSecret" "your_webhook_secret"
dotnet user-secrets set "Groq:ApiKey" "your_groq_api_key"- Go to GitHub → Settings → Developer Settings → OAuth Apps → New OAuth App
- Homepage URL:
http://localhost:5001 - Callback URL:
http://localhost:5001/auth/callback
dotnet ef database update --project ..\Revix.Infrastructure --startup-project .dotnet runngrok http 5001- Go to your repo → Settings → Webhooks → Add webhook
- Payload URL:
https://your-ngrok-url/api/webhook - Content type:
application/json - Secret: same as
GitHub:WebhookSecret - Events: Pull requests
Each file in a PR is reviewed for:
- 🔴 Bug — logical errors, null references, crashes
- 🟡 Warning — security issues, missing error handling
- 🟢 Suggestion — performance, code style, best practices
| Method | Endpoint | Description |
|---|---|---|
| GET | /auth/login |
GitHub OAuth login |
| GET | /auth/callback |
OAuth callback |
| POST | /api/webhook |
GitHub webhook receiver |
| POST | /api/groq/review |
Manual code review |
- Users — GitHub authenticated users
- Repositories — connected repos per user
- Reviews — PR review records
- ReviewComments — individual file review comments
MIT