中文文档 | English
A powerful command-line tool for intelligently collecting, analyzing, and summarizing GitHub Pull Requests and commit records. Supports keyword-based smart search and AI-powered analysis features.
- 🔍 Smart Search: AI-powered keyword extraction and intelligent PR/Commit search
- 📊 Data Collection: Automatically collect open and merged PRs, as well as merge commits
- 🔄 Diff Viewing: Complete code change viewing functionality
- 🤖 AI Analysis: Integrated with cursor-agent CLI for intelligent change summarization
- 📅 DateTime Display: Comprehensive date/time information for all PRs and commits
- 💼 Production Quality: Complete error handling, logging, and user experience
- 🎨 Beautiful Output: Professional terminal output using Rich library
- ⚙️ Environment Variables: Direct environment variable configuration (no config files needed)
Before using this tool, ensure the following dependencies are installed:
-
Python 3.8+
python --version # should be >= 3.8 -
Git
git --version
-
GitHub CLI (gh)
# Ubuntu/Debian sudo apt install gh # macOS brew install gh # Windows choco install gh
After installation, you need to login:
gh auth login
- cursor-agent CLI (for AI analysis features)
- If you need AI analysis features, please deploy cursor-agent in advance
- Configure the path in the
.envfile
# Clone or download the project
cd github-pr-analyzer
# Install dependencies
pip install -r requirements.txt
# Or install using setup.py
pip install -e .# Create virtual environment
python -m venv venv
# Activate virtual environment
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtConfigure the tool using environment variables:
# AI Configuration (Optional)
export CURSOR_AGENT_PATH=/path/to/cursor-agent
# Default Settings (Optional)
export DEFAULT_MONTHS=3
export DEFAULT_REPO_PATH=.No configuration files needed - just set environment variables directly!
# Auto-detect current repository
python main.py collect
# Specify repository
python main.py collect --repo owner/repo
# Specify time range (months)
python main.py collect --months 6# Basic search
python main.py search "bug fix authentication"
# With AI analysis
python main.py search "add new feature" --analyze
# Show diff
python main.py search "optimization" --show-diff
# Advanced options with smart search
python main.py search "refactor" \
--repo owner/repo \
--months 6 \
--min-score 50 \
--max-results 10 \
--analyze \
--smart-search
# Disable smart search (use traditional search)
python main.py search "refactor" --no-smart-search# View PR details
python main.py view-pr 123
# View PR with AI analysis
python main.py view-pr 123 --analyze
# Specify repository
python main.py view-pr 123 --repo owner/repo# View commit details
python main.py view-commit abc1234
# View and analyze
python main.py view-commit abc1234 --analyze# Launch interactive interface
python main.py interactive# Search for all PRs and commits related to "authentication"
python main.py search "authentication" --months 3 --analyze
# Output:
# - List of matching PRs and commits (sorted by relevance)
# - AI-generated summary for each change
# - Option to save analysis report# Collect all merges from the last 3 months
python main.py collect --months 3
# Then search for specific types of changes
python main.py search "performance optimization" --show-diff# View complete information for PR #456
python main.py view-pr 456 --analyze
# Output includes:
# - PR basic information
# - Complete diff
# - AI analysis: purpose, impact, technical detailsgithub-pr-analyzer/
├── main.py # Program entry point
├── setup.py # Installation configuration
├── requirements.txt # Dependency list
├── .env.example # Configuration template
├── .gitignore # Git ignore rules
├── README.md # This document
└── src/
├── __init__.py
├── config.py # Configuration management
├── utils.py # Utility functions
├── pr_collector.py # PR collection module
├── commit_collector.py # Commit collection module
├── diff_viewer.py # Diff viewing module
├── matcher.py # Smart matching module
├── ai_analyzer.py # AI analysis module
└── cli.py # Command-line interface
# Basic functionality test
python main.py --help
# Check dependencies
python test_installation.pyA: Run gh auth login and complete GitHub authentication.
A: Make sure you're in a Git repository directory, or use --repo owner/repo to specify explicitly.
A: Configure CURSOR_AGENT_PATH in the .env file. AI features are optional.
A: Adjust the --min-score parameter (lower for more results, higher for more precise results).
Issues and Pull Requests are welcome!
This project is licensed under the MIT License - free for commercial and personal use.
Copyright (c) 2025 GitHub PR Analyzer Team
For questions or suggestions, please contact us via Issues.
Enjoy analyzing! 🎉