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.

code-review-config

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:

  1. Acesse o GitHub e vá para a tela de configuração do seu perfil:

  2. Navegue até Developer Settings:

    • No menu lateral esquerdo, role para baixo até encontrar Developer Settings. Clique nesta opção.
  3. Acesse Personal Access Tokens:

    • Ainda no menu lateral esquerdo, dentro de Developer Settings, selecione Personal Access Tokens.
    • Em seguida, clique em Fine-grained Tokens.
  4. Gere um novo token:

    • Clique no botão Generate new token.
  5. 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.
  6. 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.

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.