Skip to main content

O desafio

Em um monorepo, pacotes diferentes têm padrões diferentes. Seu frontend em React se preocupa com padrões de componentes, seu backend em NestJS se preocupa com injeção de dependência, e suas libs compartilhadas se preocupam com estabilidade de API. Uma revisão única para todos não funciona.

Visão geral da estratégia

O Kodus suporta três níveis de configuração que se mapeiam naturalmente para um monorepo:

Passo 1 — Mapeie seus pacotes

Identifique as áreas distintas no seu monorepo e suas necessidades de revisão:

Passo 2 — Crie configs em nível de diretório

Na barra lateral, abra o seletor de escopo no topo do grupo Code review e escolha Add repository configuration. Em Create repository settings, use Select the target repository (o monorepo), depois Select the target directories (uma ou mais pastas de pacote) e clique em Create settings. Cada diretório aparece recuado sob o repositório no seletor de escopo — selecione-o para configurá-lo. Cada diretório pode ter seus próprios:
  • Kody Rules (em nível de arquivo e de PR)
  • What to review (quais categorias habilitar e a severidade mínima para publicar)
  • Ignored files (em General)

Passo 3 — Escreva regras direcionadas

Regras de frontend (escopo: apps/web/)

Regras de backend (escopo: apps/api/)

Regras de biblioteca compartilhada (escopo: libs/shared/)

Passo 4 — Use Memories para convenções transversais

Algumas convenções se aplicam em todo lugar. Ensine-as como Memories:

Passo 5 — Defina o limite de severidade por diretório

Pacotes de alto tráfego podem precisar de filtros mais rígidos. Selecione o diretório no seletor de escopo, abra What to review e defina Minimum severity to post:
  • apps/web/ — Medium (frontend evolui rápido)
  • libs/shared/ — Low/All (estabilidade importa)
  • infra/ — High (menos, mas críticas)

Passo 6 — Ignore caminhos gerados

Adicione ignores específicos do monorepo para evitar ruído:

Dicas

  • Comece com 2-3 regras por diretório e expanda com base no que seu time realmente sinaliza nas revisões
  • Use herança de regras — regras em nível de organização cobrem segurança, nível de repositório cobre convenções, nível de diretório cobre arquitetura
  • Se uma regra disparar com muita frequência em um pacote, mas for válida nos demais, exclua esse diretório da regra em vez de enfraquecê-la
Para mais informações sobre configurações de diretório, consulte Configuração em Nível de Diretório. Para herança de regras, consulte Herança de Regras.