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-2.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-2.0.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: refactool-2.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-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4a8c01ba6b21c81f1c2d801198beb9e6ffdeb63fb14d7e4e8baa4bdf789aa898
MD5 65bf88e6abb5f7e78697c15859d790a5
BLAKE2b-256 2c9ec52e9947e25e96541fe974e063fb4b47adb86d25728c5dcefbde071f5593

See more details on using hashes here.

File details

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

File metadata

  • Download URL: refactool-2.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-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9af21eb1ec3647fe80450dd4cfc9bd5a37feaac9b8d06c53802a0e1d80f19815
MD5 f15772ac2636296d7b67c37f8978cf99
BLAKE2b-256 569d55bb0c809cd7acce6e2066b3c0842f8121d19f5fb7b4f0e678accbc3b3d7

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