Skip to main content

análise de código e automação de PRs com CrewAI.

Project description

CodeWise

  • Ferramenta instalável via pip que usa IA para analisar o código e automatizar a documentação de Pull Requests através de hooks do Git.

Funcionalidades Principais

  • Geração de Título: Cria títulos de PR claros e concisos seguindo o padrão Conventional Commits.
  • Geração de Descrição: Escreve descrições detalhadas baseadas nas alterações do código.
  • Análise Técnica: Posta um comentário no PR com um resumo executivo de melhorias de arquitetura, aderência a princípios S.O.L.I.D. e outros pontos de qualidade.
  • Automação com hooks: Integra-se ao seu fluxo de trabalho Git para rodar automaticamente a cada git commit e git push.

Guia de Instalação

Siga estes passos para instalar e configurar o CodeWise em qualquer um dos seus repositórios.


Passo 1: Pré-requisitos (ter no PC antes de tudo)

Antes de começar, garanta que você tenha as seguintes ferramentas instaladas em seu sistema:

  1. Python (versão 3.11 ou superior).
  2. Git.
  3. GitHub CLI (gh): Após instalar em (https://cli.github.com), logue com sua conta do GitHub executando gh auth login no seu terminal (só precisa fazer isso uma vez por PC).

Passo 2: Configurando Seu Repositório

Para cada novo Repositório em que você desejar usar o CodeWise, siga os passos abaixo.

"O ideal é sempre criar um ambiente virtual na pasta raiz do novo repositório para evitar conflitos das dependências."


2.1 Crie e Utilize um Ambiente Virtual

Para evitar conflitos com outros projetos Python, use um ambiente virtual (venv).

  • Para Criar o Ambiente:

    • Este comando cria uma pasta .venv com uma instalação limpa do Python. Faça isso uma única vez por repositório, Lembrando que o ".venv" é o nome da pasta que foi criada, voce pode escolher qualquer outro nome pra ela.

(dentro da raíz do repositório onde está a pasta .git)

```bash
# No Windows
py -m venv .venv

# No Linux/WSL
python3 -m venv .venv
```
  • Para Ativar o Ambiente:

    • Sempre que for trabalhar no projeto, você precisa ativar o ambiente.

    • Dica para Windows/PowerShell: Se o comando de ativação der um erro de política de execução, rode este comando primeiro: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

    # No Windows (PowerShell)
    .\.venv\Scripts\activate
    
    # No Linux/WSL
    source .venv/bin/activate
    

    Você saberá que funcionou porque o nome (.venv) aparecerá no início da linha do seu terminal.


2.2 Instale a Ferramenta CodeWise

Com o ambiente virtual ativo, instale a biblioteca com o pip.

pip install codewise-lib

Pode demorar um pouco pra instalar todas as dependências na primeira vez.

Após instalar a lib, você pode confirmar se está tudo certo com o comando codewise-help


2.3 Configure a Chave da API (.env)

Para que a IA funcione, você precisa configurar sua chave da API do Google Gemini.

  1. Na raiz do seu projeto, crie um arquivo chamado .env. Você pode usar os seguintes comandos no terminal:

    • Windows
      notepad .env
      
    • Linux/WSL:
      touch .env && nano .env
      
  2. Dentro do arquivo .env, cole o seguinte conteúdo, adicione sua chave e salve: GEMINI_API_KEY=SUA_CHAVE_AQUI MODEL_NAME=gemini-2.0-flash ⚠️ Importante: Lembre-se de adicionar o arquivo .env ao seu .gitignore para não enviar sua chave secreta para o GitHub ao dar push e que ele deve ser do tipo "arquivo ENV" e não .txt ou coisa do tipo.


Nota Importante: A ferramenta CodeWise espera que seus remotes sigam a convenção padrão do GitHub:

origin: Deve apontar para o seu fork pessoal do repositório.

upstream: (caso você adicione ao repositório)Deve apontar para o repositório principal do qual você fez o fork.

2.4 Agora apenas uma vez > Ative a Automação no Repositório com um comando.

Na raiz do projeto onde também está a pasta .git use:

codewise-init --all

Use esse comando sempre que você quiser mudar para onde o PULL REQUEST SERÁ CRIADO nos hooks de pre push, pois se você adicionar um remoto upstream você tem que alternar entre qual o PR será gerado.

Aqui está a configuração do Alvo do Pull Request:

Se o seu repositório tiver um remote upstream configurado, o instalador fará uma pergunta depois que você usou o comando "codewise-init --all" para definir o comportamento padrão do hook pre-push:

Um remote 'upstream' foi detectado. Qual deve ser o comportamento padrão do 'git push' para este repositório? 1: Criar Pull Request no 'origin' (seu fork) 2: Criar Pull Request no 'upstream' (projeto principal) Escolha o padrão (1 ou 2):

Sua escolha será salva no hook, e você não precisará mais se preocupar com isso. Se não houver upstream, ele será configurado para origin por padrão.

Você verá uma mensagem de sucesso confirmando que a automação está ativa.

Com esse comando os arquivos de pre-commit e pre-push já terão sido adicionados ao seu hooks do repositório.


Tudo está funcionando agora no repositório que você configurou. Caso queira instalar em um novo repositório basta repetir os passos.

Usando o CodeWise

Com a configuração concluída, você já tem acesso aos comandos codewise-lint e codewise-pr de forma manual e automatizada após instalar os hooks.

  1. Adicione suas alterações

    • Após modificar seus arquivos, adicione-os à "staging area":
    git add .
    
    • Aqui você já pode usar o comando codewise-lint para analisar os arquivos e você poder fazer ajustes antes de commitar.
  2. Faça o commit

    git commit -m "implementa novo recurso "
    
    • Neste momento, o hook pre-commit será ativado, e o codewise-lint fará a análise rápida no seu terminal.
  3. Envie para o GitHub

    git push
    
    • Agora, o hook pre-push será ativado. O codewise-pr vai perguntar para qual remote você quer enviar caso haja um upstream além do seu origin em seguida irá criar um novo/atualizar seu Pull Request com título, descrição e análise técnica gerados pela IA.

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

codewise_lib-3.0.4.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

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

codewise_lib-3.0.4-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file codewise_lib-3.0.4.tar.gz.

File metadata

  • Download URL: codewise_lib-3.0.4.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for codewise_lib-3.0.4.tar.gz
Algorithm Hash digest
SHA256 2a3db115aa0cfe901cd3fe4fb30dcf1af78664522e09d664bf88bb0b78e86fd5
MD5 ea4f8114bed445455f6803685b765ebb
BLAKE2b-256 9770a9d8624951c2de8388ae24c0445a53c165a1c24fd62b110b2d6e2a923bcd

See more details on using hashes here.

File details

Details for the file codewise_lib-3.0.4-py3-none-any.whl.

File metadata

  • Download URL: codewise_lib-3.0.4-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for codewise_lib-3.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3213af2e25aff2f2f504a36a4b3b07092fe7fc95c53c1b3a65e4a0695ef2cc82
MD5 b38b82d6fa5515ea108321e2aa203279
BLAKE2b-256 944ff117f20e954f7665842511c2c1c64c5e283a3aa64bd71acc358c89a97aa6

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