DEV Community

Cover image for Revisão Automática de PRs no GitHub com Gemini Code Assist
Adriano P. Araujo
Adriano P. Araujo

Posted on • Edited on

Revisão Automática de PRs no GitHub com Gemini Code Assist

Chega de revisar código sozinho!

Chega de revisar código sozinho!

A gente sabe como é: revisão de código é vital, mas consome um tempo precioso que você poderia estar usando para codificar.

A boa notícia? Dá para automatizar essa tarefa sem abrir a carteira. O Gemini Code Assist é um app gratuito para o GitHub que atua como um colega de equipe virtual. Ele mergulha nos seus Pull Requests, aponta o que pode ser melhorado e te dá sugestões práticas. É o fim daquela pilha de PRs esperando por uma revisão.


1. Botando as coisas para funcionar

A instalação consiste nos seguintes passos:

Instalando o gemini-code-assist

  1. Vá até o Marketplace do GitHub.
  2. Clique em "Install"(lá no fim da página) e autorize o acesso. Escolha em quais repositórios o robô vai fuçar (eu liberei todos os meus, mas aí escolha é sua).
  3. Aceite os Termos de Serviço do Google e pronto. O gemini-code-assist[bot] já vai estar na área.

Deixando o robô com a sua cara

Para o Gemini não sair dando palpite genérico e perder tempo com arquivos que não interessam, crie uma pasta .gemini/ na raiz do seu projeto e ajuste as configurações. A pasta deve conter os dois arquivos :

1.styleguide.md: Crie esse arquivo para ditar suas regras. O que ele faz? Dita as regras, ora!

Exemplo do styleguide.md:

# Nossas Regras Sagradas
- Aqui usamos TypeScript. O tipo `any` é proibido e pode causar demissão (do PR).
- Em React, componentes de função são lei.
- Nada de "números mágicos" soltos no código. Crie constantes, pelo amor.
Enter fullscreen mode Exit fullscreen mode

Claro, esse é um style-guide é apenas um exemplo bem-humorado que você não deveria ver em produção(ou deveria?🤔). Você pode incluir coisas mais específicas, como princípios SOLID, Object Calisthenics, boas práticas da sua linguagem, etc.

Ah já ia me esquecendo, o styleguide.md dá o contexto da interação do gemini com o seu código, por isso é legal deixar claro a stack utilizada seja ela qual for, Go, Node, React, etc.

2.config.yaml: Aqui você define o comportamento geral do bot, incluindo o que ele deve ignorar.

Exemplo do config.yaml e o que cada propriedade significa :

have_fun: true # Isso aqui não faz nada, só deixa o clima leve.Se você não curtir gracinhas só definir como false
code_review:
  # Aqui você define à partir de que nível de severidade ele apontará as divergências do styleguide.md do seu código, no exemplo abaixo ele começa a apontar à partir de divergências de nível médio
  comment_severity_threshold: MEDIUM # Os níveis são LOW - MEDIUM - HIGH - CRITICAL
  max_review_comments: 10  # O limite de comentários por review
  # Lista de arquivos e pastas que o Gemini deve ignorar na revisão. Funciona como um .gitignore
  ignore_patterns: 
    - frontend/node_modules/** 
    - frontend/dist/** 
    - frontend/**/*.spec.ts     
  pull_request_opened: 
    summary: true  # Se você quiser um resumo das alterações implementadas quando o PR for aberto, vote true
    code_review: true # Para reforçar de que você deseja que ele faça a revisão de código

Enter fullscreen mode Exit fullscreen mode

2. A mágica acontecendo

Assim que um PR é aberto, o Gemini entra em ação. Em cerca de 5 minutos, ele aparece com:

  • Resumo do PR: Uma sinopse das mudanças, ideal pra quem tá com preguiça de ler tudo e perfeito para documentações.
  • Análise do Código: Comentários inline nas linhas que ele acha que podem melhorar. Ele classifica a gravidade (de LOW a CRITICAL), explica o motivo e, muitas vezes, já dá a sugestão de correção pronta pra aplicar.

Precisando de uma ajudinha extra?

Use os comandos diretamente nos comentários(isso é muito maneiro), do PR para chamar o bot:

Comando O que faz
/gemini review “Ô, robô! Dá uma olhada de novo aqui, por favor.”
/gemini summary “Me perdi. Faz um resumo desse PR de novo.”
@gemini-code-assist Permite fazer uma pergunta específica sobre um trecho de código.
/gemini help “Socorro! Quais são os comandos mesmo?”

3. Pontos positivos

  • Economia de tempo: Você foca em codar; ele foca em revisar. Prático.
  • Consistência no código: Chega de cada um fazer do seu jeito. O robô vira o fiscal do padrão, e garante a qualidade do código segundo os padrões definidos pelo time.
  • Aprendizado acelerado: Por essa aqui provavelmente você não esperava, para mim, tem sido uma ferramenta de estudo: tô aprofundando em Go e uso as correções que o Gemini sugere para melhorar e perceber onde estou falhando. Ele aponta erros, sugere formas mais idiomáticas e me faz entender o porquê daquela sugestão. É como ter um professor particular de código. Esse código aqui escrito em Go teve todos os seus PRs revisados pelo Gemini 😲

4. Nem tudo são flores

pc fire

  • Não é perfeito: Como está em preview, às vezes ele pode dar uma sugestão meio sem noção. Então assim, nada de confiar cegamente na IA.
  • Suporte a linguagens: Confere se ele entende a linguagem ou stack do seu projeto.
  • Conectividade: Não rola em organizações do GitHub com restrições de rede muito específicas.

5. Alguns conselhos

  1. Use como primeiro filtro: Deixe o Gemini pegar os problemas óbvios. Para a lógica de negócio que pode quebrar tudo, chame um humano.
  2. Comece com calma: Use comment_severity_threshold: MEDIUM pra não ser soterrado de notificações logo de cara.
  3. Dê feedback pro robô: Use os emojis 👍 e 👎 nos comentários dele. Isso ajuda a IA a aprender.
  4. Capriche no styleguide.md: Quanto mais claras suas regras, mais certeiras serão as revisões. Dica de ouro: quer que os resumos e sugestões venham em português? Escreva o styleguide.md em português. O mesmo vale para qualquer outro idioma.

Conclusão

A moral da história é simples: o Gemini Code Assist é aquele parceiro de código que faltava, seja para turbinar seu aprendizado solo ou para ajudar sua equipe a manter o padrão de qualidade sem dor de cabeça.

Ele automatiza a parte chata, te ensina a programar melhor e mantém seu projeto nos trilhos.

Instale, teste e deixe o robô trabalhar. Vale a pena a experiência.

Se você chegou até aqui, eu espero enormemente que esse artigo tenha sido útil para você de alguma maneira.

Just Code it!

Top comments (0)