A cross-platform desktop application built with Avalonia UI that streamlines GitHub Pull Request review workflows through intelligent comment management and batch operations.
- GitHub Integration: Secure OAuth authentication with GitHub
- Repository Management: Browse and select from your accessible repositories
- PR Navigation: Intuitive pull request browsing and selection
- Advanced Comment Filtering: Filter comments by author, file, date, and status
- Batch Operations: Select and duplicate comment sets for efficient reviews
- Offline Capability: Work with previously loaded data without internet connectivity
- Cross-Platform: Runs on Windows, macOS, and Linux
- Dark Theme: Developer-friendly dark mode interface
- .NET 8.0 SDK or later
- Git for version control
- GitHub account with appropriate repository access
- Windows 10/11, macOS 10.15+, or Linux with X11/Wayland
- Go to the Releases page
- Download the latest version for your platform:
- Windows:
GitHubPrTool-win-x64.msixorGitHubPrTool-win-x64.zip - macOS:
GitHubPrTool-osx-x64.tar.gz - Linux:
GitHubPrTool-linux-x64.tar.gz
- Windows:
# Download and run the installation script
irm https://raw.githubusercontent.com/nam20485/pr-batch-comment-tool/main/scripts/install.ps1 | iex# Clone the repository
git clone https://github.com/nam20485/pr-batch-comment-tool.git
cd pr-batch-comment-tool
# Restore dependencies
dotnet restore
# Build the application
dotnet build --configuration Release
# Run the application
dotnet run --project src/GitHubPrTool.Desktop- Launch the Application: Start GitHub PR Review Tool
- Authenticate: Click "Sign in to GitHub" and complete OAuth flow
- Select Repository: Choose a repository from your accessible list
- Browse Pull Requests: Select a PR to review from the list
- Filter Comments: Use the filter panel to narrow down comments
- Batch Operations: Select comments and use "Duplicate Comments" for batch reviews
- GitHub Token Configuration: The app uses OAuth for secure authentication
- Data Storage: Application data is stored locally in:
- Windows:
%APPDATA%/GitHubPrTool - macOS:
~/Library/Application Support/GitHubPrTool - Linux:
~/.config/GitHubPrTool
- Windows:
- OAuth Flow: Secure authentication without storing credentials
- Token Management: Automatic token refresh and secure storage
- Offline Mode: Previously loaded data remains accessible offline
- Search: Quickly find repositories using the search box
- Filtering: Filter by ownership (owned, member, collaborator)
- Sorting: Sort by name, updated date, or stars
- Status Filtering: Filter by open, closed, merged, or draft status
- Search: Find PRs by title, number, or author
- Sorting: Sort by creation date, update date, or title
- Advanced Filtering: Filter by author, file path, outdated status
- Bulk Selection: Select multiple comments using checkboxes
- Batch Duplication: Copy selected comments as new review
- Export/Import: Save and load comment templates
Ctrl+R- Refresh current viewCtrl+F- Focus search boxCtrl+A- Select all filtered itemsCtrl+D- Duplicate selected commentsF5- Sync with GitHub (online mode)
Settings are stored in settings.json in the application data directory:
{
"theme": "dark",
"autoRefreshInterval": 300,
"defaultCommentFilters": {
"includeOutdated": false,
"includeResolved": true
},
"ui": {
"windowSize": {
"width": 1200,
"height": 800
},
"splitPaneSizes": [300, 500, 400]
}
}- Rate Limiting: Automatic rate limit handling and backoff
- Caching: Intelligent local caching reduces API calls
- Sync Strategy: Background synchronization with conflict resolution
# Clone and navigate to repository
git clone https://github.com/nam20485/pr-batch-comment-tool.git
cd pr-batch-comment-tool
# Restore packages and build
dotnet restore
dotnet build
# Run tests
dotnet test
# Start the application in development mode
dotnet run --project src/GitHubPrTool.Desktopβββ src/
β βββ GitHubPrTool.Core/ # Domain models and interfaces
β βββ GitHubPrTool.Infrastructure/ # Data access and external services
β βββ GitHubPrTool.Desktop/ # Avalonia UI application
βββ tests/
β βββ GitHubPrTool.Core.Tests/
β βββ GitHubPrTool.Infrastructure.Tests/
β βββ GitHubPrTool.Desktop.Tests/
β βββ GitHubPrTool.TestUtilities/
βββ docs/ # Documentation
βββ scripts/ # Build and deployment scripts
βββ .github/workflows/ # CI/CD pipelines
- Clean Architecture: Separation of concerns with clear dependency flow
- MVVM Pattern: Model-View-ViewModel for UI separation
- Repository Pattern: Abstracted data access with caching
- Dependency Injection: Microsoft.Extensions.DependencyInjection
Please read CONTRIBUTING.md for guidelines on contributing to this project.
- User Manual - Comprehensive user documentation
- Developer Guide - Technical documentation for contributors
- API Reference - API documentation
- Architecture Overview - System design and patterns
- Release Notes - Version history and changes
Authentication Problems
- Ensure GitHub OAuth app is properly configured
- Check firewall settings for localhost callbacks
- Verify system time is synchronized
Performance Issues
- Clear application cache: Delete data directory contents
- Check network connectivity for API calls
- Monitor system resources and available memory
UI Issues
- Reset window layout: Delete
ui-layout.jsonfrom data directory - Update graphics drivers for rendering issues
- Try different theme settings
For more troubleshooting information, see Troubleshooting Guide.
This project takes security seriously and implements multiple layers of protection:
- π OAuth 2.0 Authentication: Secure GitHub authentication without storing credentials locally
- π‘οΈ Automated Security Scanning: Daily vulnerability scans with CodeQL and dependency checks
- π¦ Dependency Management: Automated dependency updates via Dependabot
- π SBOM Generation: Software Bill of Materials for supply chain transparency
- π Security Monitoring: Continuous security monitoring with GitHub Security Advisories
For security issues, please see our Security Policy.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Wiki: Project Wiki
This project is licensed under the MIT License - see the LICENSE file for details.
- Avalonia UI - Cross-platform .NET UI framework
- Octokit.NET - GitHub API client library
- Entity Framework Core - Data access technology
- CommunityToolkit.Mvvm - MVVM helpers
Made with β€οΈ for the GitHub developer community
