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

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)