PR Hub
AI-powered pull request reviews across GitHub, Azure DevOps, GitLab, and Bitbucket.
Features
- 🎨 Visual Tree View: Browse PRs from all platforms in a unified sidebar panel ⭐ NEW!
- 🔍 Multi-Platform Support: Review PRs from Azure DevOps, GitHub, GitLab, and Bitbucket in one place
- 📊 Rich PR Details: View PR information in an interactive webview with file changes and stats
- 🤖 AI-Powered Reviews: Leverage GitHub Copilot for intelligent code analysis (coming soon)
- 💾 Smart Caching: Multi-tier caching system reduces API calls by 90%+
- 🔄 Auto-Sync: Automatic background synchronization of watched PRs
- 💬 Comment Posting: Post review comments directly to your platform (coming soon)
- 👁️ Watch PRs: Mark important PRs for automatic updates
- ⚡ Fast Performance: Instant PR list loading from local cache
Installation
npm install
npm run compile
Setup
Azure DevOps
- Generate a Personal Access Token (PAT) from Azure DevOps
- Go to User Settings → Personal Access Tokens
- Create new token with scopes:
vso.code (Read) and vso.code_write (Write)
- Run command:
PR Reviewer: Configure Platform
- Select "Azure DevOps" and enter your organization URL and PAT
GitHub
- Generate a Personal Access Token
- Go to Settings → Developer Settings → Personal Access Tokens
- Create token with scopes:
repo, read:user
- Run command:
PR Reviewer: Configure Platform
- Select "GitHub" and enter your PAT
Quick Setup (Auto-Detection)
Run PR Reviewer: Quick Setup to automatically detect the platform from your git remote!
Usage
Browse PRs in Tree View ⭐ NEW!
- Open the Explorer sidebar in VS Code
- Find the PR Reviewer panel
- You'll see all your authenticated platforms (Azure DevOps, GitHub, etc.)
- Click any PR to view details in an interactive webview
- Use the refresh button (top-right) to update PR lists
Review a PR
- Click on a PR from the tree view
- View PR details including:
- Title, status, and author information
- Full description
- List of changed files with +/- stats
- Link to view on original platform
- AI-powered code review coming soon!
- Comment posting UI coming soon!
Watch a PR
Right-click on a PR and select "Watch PR" to enable automatic background synchronization.
Cache Configuration
Configure cache behavior in VS Code settings:
{
"prReviewer.cache.strategy": "hybrid", // manual | auto-sync | hybrid
"prReviewer.cache.autoSyncInterval": 15, // minutes
"prReviewer.cache.retention": 30 // days
}
Architecture
src/
├── providers/
│ ├── base/ # Common interfaces and types
│ ├── azure/ # Azure DevOps implementation
│ ├── github/ # GitHub implementation
│ ├── gitlab/ # GitLab implementation (coming soon)
│ └── bitbucket/ # Bitbucket implementation (coming soon)
Caching System
- Memory Cache: Fast, 5-minute TTL for active PRs
- Persistent Cache: SQLite database for all PR metadata
- Smart Sync: Auto-sync watched PRs, manual refresh for others
Development Status
✅ Completed
- [x] Project structure and configuration
- [x] Base provider interface and types
- [x] Multi-tier caching infrastructure
- [x] Azure DevOps provider (full support)
- [x] GitHub provider (full support)
🚧 In Progress
- [ ] GitLab provider
- [ ] Bitbucket provider
- [ ] Review engine with Copilot integration
- [ ] Multi-platform UI (tree view, commands, panels)
📅 Planned
- [ ] OAuth support for GitHub and GitLab
- [ ] Platform auto-detection from git remotes
- [ ] Advanced caching policies
- [ ] Tests and documentation
Configuration
Available Settings
{
// Platform configuration
"prReviewer.platforms.azure.enabled": true,
"prReviewer.platforms.github.enabled": true,
"prReviewer.platforms.gitlab.enabled": true,
"prReviewer.platforms.bitbucket.enabled": true,
// Cache settings
"prReviewer.cache.enabled": true,
"prReviewer.cache.strategy": "hybrid",
"prReviewer.cache.autoSyncInterval": 15,
"prReviewer.cache.maxSize": 500,
"prReviewer.cache.retention": 30,
// Review settings
"prReviewer.review.autoReview": false,
"prReviewer.review.maxFilesPerReview": 20,
"prReviewer.review.excludedPatterns": [
"**/node_modules/**",
"**/dist/**",
"**/*.min.js"
]
}
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
MIT
Author
Chandan Gupta Bhagat
Acknowledgments