Ferramenta local em Python para gerar descricoes de Pull Requests e Release Notes a partir de um repositorio Git, usando LLM local (Ollama) para sumarizacao inteligente.
- Python 3.10+
- Git instalado e acessivel no PATH
- Ollama (local ou via Docker)
Escolha uma das opcoes abaixo. Os scripts instalam o Ollama, baixam o modelo configurado e instalam o pacote Python automaticamente.
bash setup-local.shInstala o Ollama na maquina, baixa o modelo definido em config.default.json e instala o pacote pullnotes.
bash setup-docker.shSobe o Ollama via Docker Compose, baixa o modelo definido em config.default.json e instala o pacote pullnotes.
Requer Docker instalado.
Apos o setup, use normalmente:
pullnotes /caminho/para/repo --config config.default.json --generate bothPara um intervalo especifico de commits:
pullnotes /caminho/para/repo --config config.default.json --range v1.0..v1.1 --generate bothSe preferir instalar sem os scripts:
1. Instalar o pacote
pip install .2. Subir o Ollama (Docker ou local)
# Docker
docker compose up -d
# Ou local (requer Ollama instalado: https://ollama.com/download)
ollama pull qwen2.5:14bpip install -e .Os arquivos sao gerados em {output_dir}/{nome_repo}/:
{output_dir}/{repo}/
├── prs/
│ └── pr_{titulo}.md
├── releases/
│ └── release_{versao}.md
└── utils/
├── commit.json
├── conventions.md
└── domain_profile_{repo}.json
Use config.default.json como base e passe com --config:
pullnotes . --config config.default.json --range main..HEADO codigo esta organizado em camadas sob src/pullnotes/:
cli.py: parsing da CLIconfig.py: carga e validacao de configuracoesdomain/: entidades, servicos e schemasadapters/: git, filesystem, llm e perfil de dominioworkflows/: orquestracao principal (sync.py)prompts/: templates de prompt para o LLMtemplates/: templates markdown de saida (pr.md, release.md)
O Docker e usado apenas para subir o Ollama:
docker compose up -dDocumentacao completa em docs/.