Skip to content

nam20485/pr-batch-comment-tool

Repository files navigation

GitHub PR Review Tool

Build and Test Security Scan CodeQL Analysis codecov License: MIT .NET

A cross-platform desktop application built with Avalonia UI that streamlines GitHub Pull Request review workflows through intelligent comment management and batch operations.

GitHub PR Review Tool

πŸš€ Features

  • 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

πŸ“‹ Prerequisites

  • .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

πŸ› οΈ Installation

Option 1: Download Release (Recommended)

  1. Go to the Releases page
  2. Download the latest version for your platform:
    • Windows: GitHubPrTool-win-x64.msix or GitHubPrTool-win-x64.zip
    • macOS: GitHubPrTool-osx-x64.tar.gz
    • Linux: GitHubPrTool-linux-x64.tar.gz

Option 2: Install via PowerShell (Windows)

# Download and run the installation script
irm https://raw.githubusercontent.com/nam20485/pr-batch-comment-tool/main/scripts/install.ps1 | iex

Option 3: Build from Source

# 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

🎯 Quick Start

  1. Launch the Application: Start GitHub PR Review Tool
  2. Authenticate: Click "Sign in to GitHub" and complete OAuth flow
  3. Select Repository: Choose a repository from your accessible list
  4. Browse Pull Requests: Select a PR to review from the list
  5. Filter Comments: Use the filter panel to narrow down comments
  6. Batch Operations: Select comments and use "Duplicate Comments" for batch reviews

First-Time Setup

  1. GitHub Token Configuration: The app uses OAuth for secure authentication
  2. Data Storage: Application data is stored locally in:
    • Windows: %APPDATA%/GitHubPrTool
    • macOS: ~/Library/Application Support/GitHubPrTool
    • Linux: ~/.config/GitHubPrTool

πŸ“– User Guide

Authentication

  • OAuth Flow: Secure authentication without storing credentials
  • Token Management: Automatic token refresh and secure storage
  • Offline Mode: Previously loaded data remains accessible offline

Repository Selection

  • Search: Quickly find repositories using the search box
  • Filtering: Filter by ownership (owned, member, collaborator)
  • Sorting: Sort by name, updated date, or stars

Pull Request Management

  • 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

Comment Operations

  • 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

Keyboard Shortcuts

  • Ctrl+R - Refresh current view
  • Ctrl+F - Focus search box
  • Ctrl+A - Select all filtered items
  • Ctrl+D - Duplicate selected comments
  • F5 - Sync with GitHub (online mode)

πŸ”§ Configuration

Application Settings

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]
  }
}

GitHub API Configuration

  • Rate Limiting: Automatic rate limit handling and backoff
  • Caching: Intelligent local caching reduces API calls
  • Sync Strategy: Background synchronization with conflict resolution

πŸš€ Development

Development Setup

# 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

Project Structure

β”œβ”€β”€ 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

Architecture

  • 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

Contributing

Please read CONTRIBUTING.md for guidelines on contributing to this project.

πŸ“š Documentation

πŸ› Troubleshooting

Common Issues

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.json from data directory
  • Update graphics drivers for rendering issues
  • Try different theme settings

For more troubleshooting information, see Troubleshooting Guide.

πŸ”’ Security

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.

🀝 Support

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ† Acknowledgments


Made with ❀️ for the GitHub developer community

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •