Skip to main content

Analisador de código com cache distribuído e alta performance

Project description

Refactool Analisador de Código

Este projeto é uma ferramenta de análise de código que utiliza múltiplos provedores de IA para fornecer sugestões de melhoria em projetos. Por padrão, utiliza o Google Gemini, mas suporta integração com outros provedores.

Funcionalidades

  • Análise estática de código
  • Sugestões de melhoria em português do Brasil
  • Suporte a múltiplos provedores de IA:
    • Google Gemini (padrão)
    • OpenAI GPT
    • DeepSeek
    • Ollama (para execução local)
  • Análise de repositórios Git
  • Relatórios detalhados em formato JSON
  • Configuração flexível de provedores de IA

Requisitos

  • Python 3.8+
  • Git instalado
  • Pelo menos uma das seguintes chaves de API:
    • Google Gemini API Key
    • OpenAI API Key
    • DeepSeek API Key
    • Ollama instalado localmente (opcional)

Instalação

Este pacote está disponível no PyPI e pode ser instalado via pip:

  1. pip install refactool
    
  2. Configure o arquivo .env:
    # Configuração do Gemini (Padrão)
    GEMINI_API_KEY=sua-chave-api-aqui
    
    # Configuração do Git (Windows)
    GIT_PYTHON_GIT_EXECUTABLE=C:\Program Files\Git\bin\git.exe
    
    # Configurações Opcionais de Outros Provedores
    OPENAI_API_KEY=sua-chave-openai-aqui
    DEEPSEEK_API_KEY=sua-chave-deepseek-aqui
    OLLAMA_URL=http://localhost:11434/api/generate
    OLLAMA_MODEL=llama2:13b
    

OU

  1. Clone o repositório:
    git clone https://github.com/gabrielsalvesdev/refactool
    cd refactool-beta
    
  2. Instale as dependências:
    pip install -r requirements.txt
    
  3. Configure o arquivo .env:
    # Configuração do Gemini (Padrão)
    GEMINI_API_KEY=sua-chave-api-aqui
    
    # Configuração do Git (Windows)
    GIT_PYTHON_GIT_EXECUTABLE=C:\Program Files\Git\bin\git.exe
    
    # Configurações Opcionais de Outros Provedores
    OPENAI_API_KEY=sua-chave-openai-aqui
    DEEPSEEK_API_KEY=sua-chave-deepseek-aqui
    OLLAMA_URL=http://localhost:11434/api/generate
    OLLAMA_MODEL=llama2:13b
    

Uso

Análise Básica

Para analisar um repositório usando o provedor padrão (Gemini):

python analyze_repo.py https://github.com/usuario/repositorio

Análise com Provedor Específico

Para especificar qual provedor de IA usar:

# Usando OpenAI
python analyze_repo.py https://github.com/usuario/repositorio --provider openai

# Usando DeepSeek
python analyze_repo.py https://github.com/usuario/repositorio --provider deepseek

# Usando Ollama local
python analyze_repo.py https://github.com/usuario/repositorio --provider ollama

Opções Adicionais

# Salvar relatório em arquivo específico
python analyze_repo.py https://github.com/usuario/repositorio -o relatorio.json

# Usar arquivo de configuração personalizado
python analyze_repo.py https://github.com/usuario/repositorio -c config.json

# Análise com múltiplos provedores
python analyze_repo.py https://github.com/usuario/repositorio --providers gemini,openai,deepseek

# Análise focada em diretórios específicos
python analyze_repo.py https://github.com/usuario/repositorio --dirs src/,tests/

Configuração Personalizada

Você pode criar um arquivo config.json para personalizar a análise:

{
    "providers": {
        "gemini": {
            "enabled": true,
            "model": "gemini-2.0-flash",
            "temperature": 0.7
        },
        "openai": {
            "enabled": true,
            "model": "gpt-4",
            "temperature": 0.5
        },
        "deepseek": {
            "enabled": true,
            "model": "deepseek-coder-33b-instruct"
        },
        "ollama": {
            "enabled": true,
            "model": "llama2:13b",
            "url": "http://localhost:11434/api/generate"
        }
    },
    "analysis": {
        "max_method_lines": 30,
        "max_complexity": 10,
        "ignore_patterns": ["*.min.js", "vendor/*"]
    }
}

Estrutura do Projeto

/
├── microservices/
│   └── source-provider/
│       └── src/
│           ├── analyzers/         # Módulos de análise
│           │   ├── ai_providers.py  # Provedores de IA
│           │   └── ...
│           ├── analyze_repo.py    # Script principal
│           └── test_gemini.py     # Testes do Gemini
├── requirements.txt   # Dependências
└── README.md         # Este arquivo

Publicação

Novas versões são publicadas automaticamente através do pipeline de CI/CD quando uma nova tag é criada no repositório.

Nota para desenvolvedores internos: Instruções detalhadas sobre o processo de publicação estão disponíveis na documentação interna do projeto.

Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-feature)
  3. Commit suas mudanças (git commit -am 'Adiciona nova feature')
  4. Push para a branch (git push origin feature/nova-feature)
  5. Crie um Pull Request

Licença

Este projeto está licenciado sob a GNU Lesser General Public License v3.0 (LGPL-3.0).

Para mais detalhes, consulte o arquivo LICENSE ou visite GNU Lesser General Public License v3.0.

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

refactool-3.0.0.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

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

refactool-3.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: refactool-3.0.0.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for refactool-3.0.0.tar.gz
Algorithm Hash digest
SHA256 506c1cd815245036f2466fbd089c749ca09fbd31736ebd86130be0b552fec55f
MD5 250db2d607fdfc5bde38842180bfe0ef
BLAKE2b-256 fa883218187ca93955396556008b20630b4bc44eaf626b9e1ba1aad915119ac1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: refactool-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for refactool-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b305889613090c2aa43316ae7f1b8ac6f2a3e70db12b2804119e1741031d753d
MD5 b95716534c27502c2deb97c119b13e9b
BLAKE2b-256 867c8a6f4c11c7d0f9a3d24190a4801231b7ee6762d86104455c79679b6b6869

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