Skip to main content

Generate fix patterns & issue templates from PR history

Project description


🎯 Overview

pulldoc is a tool for communicating repository history to LLM! It analyzes GitHub pull request history and automatically generates modification patterns and issue templates, so you can leverage LLM to improve your team's development efficiency!

🌟 Key Features

📊 Pull Request Collection & Analysis
  • Automatic collection of PR history through GitHub API
  • Efficient retrieval of PRs within specified ranges
  • Structured information for merged and unmerged PRs
🤖 AI-Driven Summary Generation
  • Support for multiple LLM models including [Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq etc.]
  • Flexible summary generation with custom prompts
  • Multilingual support
  • Efficient batch processing for large data volumes
📈 Intelligent Analysis
  • Automatic identification of code fix patterns
  • Classification and organization of common issues
  • Team development trend analysis
  • Generation of reusable templates

🚀 Quick Start

# Set LLM API Key
export OPENAI_API_KEY="your_openai_api_key" or other LLM provider settings

# Set Github Token (Private Only)
export GITHUB_TOKEN="your_github_token"

Using uvx

uvx pulldoc run {owner/repo-name}

💻 Installation

# Install dependencies (uv recommended)
uv add pulldoc

# or use pip
pip install pulldoc

🎯 Basic Usage

pulldoc run {owner/repo-name}
# Options
--start INTEGER # starting point of PR number
--end INTEGER # end point of PR number
--model TEXT # LLM model (default: gpt-4o-mini)
--custom-prompt TEXT # custom prompt
--lang TEXT # language (default: en)
--only-total # generate final summary only.

  • Execute individually.
# 1. collect PR data
pulldoc collect owner/repo-name --start 100 --end 200

# 2. summarize collected data
pulldoc summarize owner/repo-name --model us.anthropic.claude-sonnet-4-20250514-v1:0 --lang ja

📁 Output Structure

.pulldoc_result/
└── owner/
    └── repo-name/
        ├── raws/
        │   ├── pr_001.json
        │   └── pr_002.json
        ├── summaries/
        |   ├── batch_001_summary.md
        |   ├── batch_002_summary.md
        ├── RULES_FOR_AI.md
        └── ISSUE_TEMPLATES.md

🤝 Contributing

We welcome contributions to pulldoc!

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Create a Pull Request

🐛 Bug Reports & Feature Requests

If you discover issues or have ideas for new features, please let us know through Issues.

When reporting bugs, please include the following information:

  • Python version
  • Command executed
  • Error message
  • Expected behavior

📄 License

This project is released under the MIT License.

🙏 Acknowledgments

Python GitHub API Typer litellm


⭐ If this project was helpful, please give it a star!

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

pulldoc-0.2.1.tar.gz (103.2 kB view details)

Uploaded Source

Built Distribution

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

pulldoc-0.2.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file pulldoc-0.2.1.tar.gz.

File metadata

  • Download URL: pulldoc-0.2.1.tar.gz
  • Upload date:
  • Size: 103.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.15

File hashes

Hashes for pulldoc-0.2.1.tar.gz
Algorithm Hash digest
SHA256 142f84e5e8f6a800f18ad09e3ce7e983ae556a160115b7828119be038ca4ff52
MD5 52fb392bed5b30fde7b957a5c6f02a7a
BLAKE2b-256 4311ab38f462fcc5f5341580db070cc36dd42601b7457df7b72b67f4c3faf16a

See more details on using hashes here.

File details

Details for the file pulldoc-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pulldoc-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.15

File hashes

Hashes for pulldoc-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a65b54b714029a662a3e312124975f14735997904f3116392c1d4d81c1bfb8f6
MD5 82c2bfa1d7f7b9e0e290d79028f1e2c2
BLAKE2b-256 fc3896b41b668dc004b7ffe56301a7717450c9ec17c226047ed73fcb5a915ad2

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