Documentação

Portas de qualidade

Como as políticas definem o que pode ser aprovado e onde um Portão pode interromper uma tarefa.

Um Portão de qualidade é uma verificação que o trabalho precisa passar antes de avançar. Os Portões fazem com que o critério de 'bom o suficiente para ser entregue' deixe de ser subjetivo e passe a ser algo que o sistema aplica da mesma forma todas as vezes.

Bloqueante e consultivo

Cada Portão é um ou outro, e essa distinção é o cerne do design:

  • Bloqueante — a falha impede o avanço da tarefa. O trabalho não prossegue até que seja aprovado ou um humano faça a sobrescrita.
  • Consultivo — a falha é registrada como uma observação e anexada ao pull request, mas a tarefa continua.

Comece com configurações consultivas. Observe o que um Portão sinaliza em trabalhos reais por uma ou duas semanas e, então, promova os que se mostrarem eficazes para o modo bloqueante. Um Portão que bloqueia desde o primeiro dia, sem ajustes prévios, geralmente leva as pessoas a contorná-lo.

O que os Portões podem verificar

Os Portões operam na fase de verificação e podem cobrir:

  • a execução bem-sucedida da sua própria suíte de testes
  • limites de cobertura de código
  • ferramentas de linting e análise estática
  • varreduras de segurança
  • testes em navegadores em um ambiente de pré-visualização em execução
  • evidências de provedores externos anexadas ao pull request

O Portão mais valioso quase sempre é a sua suíte de testes existente, pois ela já codifica o que sua equipe considera importante.

Onde um Portão pode interromper o trabalho

Os Portões são executados durante a verificação, após o agente de desenvolvimento concluir seu trabalho e antes da Revisão. Uma falha bloqueante devolve a tarefa para retrabalho, em vez de gerar um pull request que seria rejeitado.

Essa ordem é intencional: é mais barato falhar durante a execução do que falhar na sua tela.

Políticas

Os Portões são agrupados em políticas, que são o que você realmente associa aos projetos. Uma política é um conjunto nomeado de Portões com suas configurações bloqueantes/consultivas, permitindo que você tenha uma norma padrão para serviços de produção e outra mais flexível para ferramentas internas.

As políticas são versionadas. Você publica uma alteração e pode reverter para uma versão anterior caso um novo Portão se revele muito rigoroso.

Sobrescritas

Um Portão bloqueante pode ser sobrescrito por um humano com autoridade para isso. A sobrescrita é registrada — quem, quando e em qual contexto.

Esse registro é o objetivo. Um Portão que ninguém pode sobrescrever vira algo que as pessoas contornam; um Portão que qualquer um pode sobrescrever silenciosamente não é um Portão de verdade. Uma sobrescrita que deixa rastro é ao mesmo tempo útil e responsável.

O que os Portões não fazem

Os Portões verificam propriedades. Eles não avaliam se o trabalho resolve o problema certo — isso cabe aos critérios de aceitação na especificação e à própria Revisão.

Uma alteração pode passar por todos os Portões e ainda assim ser a mudança errada.