Skip to main content

Intelligent tool for collecting, analyzing, and summarizing GitHub Pull Requests and commits

Project description

GitHub PR & Commit Analyzer

中文文档 | 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.

✨ Key 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)

📋 Prerequisites

Before using this tool, ensure the following dependencies are installed:

Required Dependencies

  1. Python 3.8+

    python --version  # should be >= 3.8
    
  2. Git

    git --version
    
  3. 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
    

Optional Dependencies

  1. cursor-agent CLI (for AI analysis features)
    • If you need AI analysis features, please deploy cursor-agent in advance
    • Configure the path in the .env file

🚀 Installation

Method 1: Install from Source

# Clone or download the project
cd github-pr-analyzer

# Install dependencies
pip install -r requirements.txt

# Or install using setup.py
pip install -e .

Method 2: Using Virtual Environment (Recommended)

# 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.txt

⚙️ Configuration

Configure 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!

📖 Usage

Basic Commands

1. Collect PRs and Commits

# 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

2. Search for Relevant Changes

# 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

3. View Specific PR

# 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

4. View Specific Commit

# View commit details
python main.py view-commit abc1234

# View and analyze
python main.py view-commit abc1234 --analyze

5. Interactive Mode

# Launch interactive interface
python main.py interactive

🎯 Use Cases

Scenario 1: Find All Changes Related to Specific Feature

# 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

Scenario 2: Review Recent Merges

# 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

Scenario 3: Deep Dive into Specific PR

# 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 details

🛠️ Development

Project Structure

github-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

Running Tests

# Basic functionality test
python main.py --help

# Check dependencies
python test_installation.py

📝 FAQ

Q: Getting "gh CLI not authenticated"

A: Run gh auth login and complete GitHub authentication.

Q: Repository not found

A: Make sure you're in a Git repository directory, or use --repo owner/repo to specify explicitly.

Q: AI analysis not available

A: Configure CURSOR_AGENT_PATH in the .env file. AI features are optional.

Q: Too many/too few search results

A: Adjust the --min-score parameter (lower for more results, higher for more precise results).

🤝 Contributing

Issues and Pull Requests are welcome!

📄 License

This project is licensed under the MIT License - free for commercial and personal use.

Copyright (c) 2025 GitHub PR Analyzer Team

🔗 Related Resources

📧 Contact

For questions or suggestions, please contact us via Issues.


Enjoy analyzing! 🎉

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

github_pr_analyzer-3.0.0.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

github_pr_analyzer-3.0.0-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file github_pr_analyzer-3.0.0.tar.gz.

File metadata

  • Download URL: github_pr_analyzer-3.0.0.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for github_pr_analyzer-3.0.0.tar.gz
Algorithm Hash digest
SHA256 9c66fb74ce5e8f70317dbbcbef7f2b22c29120b9ec5305062dc434082a97596a
MD5 39f6662a51d75b48ea72a6efb507be4e
BLAKE2b-256 3948881058319003e1c25d4a36379aca647d9e19ab5dca50987fffa95dc23604

See more details on using hashes here.

File details

Details for the file github_pr_analyzer-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for github_pr_analyzer-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d19dfbf4f1804359e5a851768619db44324850453c4920e1eba08336657008d
MD5 18533984c8f0d2fa09a4da54b2de0ff4
BLAKE2b-256 394e9fb6ec2ee1ccfd10ec551a7cbf891017010c230a209d2e42371b1373ce77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page