Code Review Automatizado
Como Funciona
Toda vez que um membro do time abrir um pull request, a Kody realizará o Code Review diretamente na ferramenta de gestão de código, como GitHub ou GitLab. A Kody analisará o código, fornecerá feedback detalhado e destacará possíveis problemas, da mesma forma que um revisor humano faria. Isso ajuda a garantir a qualidade do código e a acelerar o processo de revisão.
Configurações de Code Review
Você pode configurar o Code Review para que a Kody analise o código de acordo com as necessidades do seu time.
Tipos de análise
Selecione os tipos de análise que a Kody deverá realizar. Dentre eles:
Desempenho e otimização: Melhorias na eficiência, desempenho e uso de recursos do código.
// Código original
let result = [];
for (let i = 0; i < items.length; i++) {
result.push(items[i] * 2);
}
// Código otimizado usando map (mais eficiente e legível)
const result = items.map(item => item * 2);
Segurança: Correção de vulnerabilidades ou melhorias na segurança do código.
// Código original
function getUserData(username) {
return db.query(`SELECT * FROM users WHERE username = '${username}'`);
}
// Código com melhoria de segurança (usando prepared statements)
function getUserData(username) {
return db.query('SELECT * FROM users WHERE username = ?', [username]);
}
Tratamento de erros: Aprimoramento na forma como erros e exceções são tratados.
// Código original
const data = JSON.parse(input);
// Código melhorado com tratamento de erros
try {
const data = JSON.parse(input);
} catch (error) {
console.error('Erro ao fazer o parsing do JSON:', error);
}
Refatoração: Reestruturação do código para melhor legibilidade, manutenibilidade ou modularidade.
// Código original
function calculateDiscount(price, discount) {
if (discount) {
return price - (price * discount / 100);
} else {
return price;
}
}
// Código refatorado para reduzir a duplicação de lógica
function calculateDiscount(price, discount = 0) {
return price - (price * discount / 100);
}
Manutenibilidade: Facilitação da manutenção e extensão futura do código.
// Código original
function processOrder(order) {
// processamento de pedidos
}
// Código refatorado com modularidade para fácil manutenção
function validateOrder(order) {
// validação de pedidos
}
function calculateTotal(order) {
// cálculo de total
}
function processOrder(order) {
validateOrder(order);
calculateTotal(order);
// mais lógica de processamento
}
Possível problema: Correção de possíveis bugs ou erros lógicos.
// Código original
const total = items.length > 0 ? items.reduce((a, b) => a + b) : 0;
// Código melhorado para evitar erro quando `items` for vazio
const total = items.length > 0 ? items.reduce((a, b) => a + b, 0) : 0;
Estilo de código: Melhoria na consistência e aderência aos padrões de codificação.
// Código original
function sayHello(){
console.log("Hello, world!")
}
// Código melhorado para aderir aos padrões de estilo (ESLint)
function sayHello() {
console.log('Hello, world!');
}
Documentação e comentários: Aprimoramento da documentação e clareza dos comentários.
// Código original sem comentários
function addUser(user) {
db.insert(user);
}
// Código melhorado com documentação
/**
* Adiciona um novo usuário ao banco de dados.
* @param {Object} user - O objeto do usuário a ser adicionado.
*/
function addUser(user) {
db.insert(user);
}
Arquivos ignorados
Liste todos os arquivos que a Kody deve ignorar durante o Code Review.
Limite de sugestões
Limite a quantidade de sugestões que a Kody deve realizar por arquivo alterado em um Pull Request.
Ignorar palavras-chave do título do PR
Liste palavras-chave que são usadas no título de um Pull Request que a Kody deve ignorar.
Branches base
Por padrão, a Kody faz Code Review em todos os PRs para branches base (main, master, etc). Liste as branches que a Kody deve fazer além do base.
Introdução ao FGPAT
Para que a Kody possa realizar o Code Review automaticamente, é necessário gerar um Fine-Grained Personal Access Token (FGPAT) no GitHub. Este token permite que a Kody acesse os repositórios e realize análises de código de forma segura e controlada.
Liberando o FGPAT (Fine-Grained Personal Access Token)
Siga os passos abaixo para configurar o token corretamente:
-
Acesse o GitHub e vá para a tela de configuração do seu perfil:
-
Navegue até
Developer Settings
:- No menu lateral esquerdo, role para baixo até encontrar
Developer Settings
. Clique nesta opção.
- No menu lateral esquerdo, role para baixo até encontrar
-
Acesse
Personal Access Tokens
:- Ainda no menu lateral esquerdo, dentro de
Developer Settings
, selecionePersonal Access Tokens
. - Em seguida, clique em Fine-grained Tokens.
- Ainda no menu lateral esquerdo, dentro de
-
Gere um novo token:
- Clique no botão
Generate new token
.
- Clique no botão
-
Configure o novo token com as seguintes especificações:
- Nome do Token: Escolha um nome fácil de identificar, como
kody_code_review
. - Data de Expiração: Se possível, selecione uma data de expiração longa, de no mínimo 180 dias.
- Resource Owner: Certifique-se de colocar a organização como proprietária do token, afinal os repositórios do time estão na organização.
- Acesso ao Repositório: Selecione All repositories para permitir que o token tenha acesso a todos os repositórios.
- Permissões: Configure as permissões conforme abaixo, todas com acesso de leitura (Read-only):
- Contents: Permissão de leitura.
- Metadata: Permissão de leitura.
- Pull requests: Permissão de leitura.
- Webhooks: Permissão de leitura.
- Nome do Token: Escolha um nome fácil de identificar, como
-
Finalize e salve o token:
- Após configurar todas as permissões, clique em
Generate token
. - Certifique-se de copiar o token gerado e armazená-lo em um local seguro, pois você precisará dele para configurar a Kody.
- Após configurar todas as permissões, clique em
Inserindo o Token na Kody
Após gerar o token, cole na tela de configuração da automação. A modal vai abrir automaticamente assim que você tentar ligar a automação.