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 environment variables
export GITHUB_TOKEN="your_github_token"
export OPENAI_API_KEY="your_openai_api_key" or other LLM provider settings

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! โญ

๐Ÿ› Bug Report โ€ข ๐Ÿ’ก Feature Request โ€ข โ“ Questions

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.1.2.tar.gz (115.7 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.1.2-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pulldoc-0.1.2.tar.gz
Algorithm Hash digest
SHA256 bdaba269369e3f4cbce07428efc561ee52b75f4f52910fe7d5351dd26fe1fde3
MD5 4d4561b2fe0d8d53fa455fa820253499
BLAKE2b-256 ec30bad30ae9931306b7dfb6b8ace0672c4a2442b781773b01b9d0a91dca1878

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pulldoc-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b7f7510b7d59dcf95768995d9865cf920b17a94a779245046b29884f39d927bf
MD5 710eccb28254707a8635d57584c1d223
BLAKE2b-256 8eb9322693877dcf05fdabfe5cbebd7b86488484518f56a029a80104f142d087

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