How srikanthreddyvvs/diffhawk works
DiffHawk is a GitHub pull-request review service: users connect and register repositories, GitHub webhooks trigger review work, and review findings and comments are produced. Sampled code confirms authentication persistence, repository management, webhook validation and outbox enqueueing, and review-result persistence and GitHub comments. The README offers no further architecture detail; outbox publishing, Kafka consumption, and AI request orchestration are represented as subsystems from the source tree, but their wiring is not confirmed by sampled source.
Main entry points: UserRepository.java Users · ReviewService.java Review Results · RepoService.java Repository Management · WebhookService.java Webhook Validation
Components 21
Identity
- OAuth User Sync
src/main/java/com/DiffHawk/service/CustomOAuth2UserService.java - OAuth Success
src/main/java/com/DiffHawk/config/OAuth2SuccessHandler.java - JWT Service
src/main/java/com/DiffHawk/service/JwtService.java - Auth API
src/main/java/com/DiffHawk/controller/AuthController.java - Users
src/main/java/com/DiffHawk/repository/UserRepository.java
Repository Setup
- Repository API
src/main/java/com/DiffHawk/controller/RepoController.java - Repository Management
src/main/java/com/DiffHawk/service/RepoService.java - Repositories
src/main/java/com/DiffHawk/repository/RepoRepository.java
Review Events
- Webhook API
src/main/java/com/DiffHawk/controller/WebhookController.java - Webhook Validation
src/main/java/com/DiffHawk/service/WebhookService.java - Outbox Events
src/main/java/com/DiffHawk/repository/OutboxRepository.java - Outbox Publisher
src/main/java/com/DiffHawk/service/OutboxPublisher.java
Review Processing
- Review Consumer
src/main/java/com/DiffHawk/consumer/ReviewConsumer.java - AI Service Client
src/main/java/com/DiffHawk/client/AiServiceClient.java - Review Results
src/main/java/com/DiffHawk/service/ReviewService.java - Reviews
src/main/java/com/DiffHawk/repository/ReviewRepository.java - Review Findings
src/main/java/com/DiffHawk/repository/ReviewFindingRepository.java - GitHub Client
src/main/java/com/DiffHawk/client/GitHubClient.java
Other components
- User
- GitHub
- Kafka
Connections 18
- User → Repository API: manages repos
- GitHub → OAuth User Sync: OAuth profile
- OAuth User Sync → Users: reads/writes users
- OAuth Success → Users: loads user
- OAuth Success → JWT Service: generates token
- User → Auth API: requests profile
- Auth API → Users: loads user
- Repository API → Repository Management: delegates
- Repository Management → Users: loads user
- Repository Management → Repositories: manages repos
- GitHub → Webhook API: sends webhook
- Webhook API → Webhook Validation: validates event
- Webhook Validation → Repositories: looks up repo
- Webhook Validation → Outbox Events: stores event
- Review Results → Review Findings: saves findings
- Review Results → Reviews: saves review
- Review Results → GitHub Client: posts comments
- GitHub Client → GitHub: comments on PR