Skip to main content

Sobre hooks pre-receive

Hooks pre-receive são scripts executados no dispositivo do GitHub Enterprise Server que você pode usar para implementar verificações de qualidade.

Sobre hooks pre-receive

Quando ocorre um push, cada script é executado em um ambiente isolado e pode executar verificações no conteúdo do push. Os scripts farão o push ser aceito se o status de saída for 0, ou farão o push ser rejeitado se o status de saída for diferente de zero.

Use os hooks pre-receive para cumprir com as regras corporativas, aplicar a conformidade regulamentar e evitar certos erros comuns.

Exemplos de uso dos hooks pre-receive:

  • Exigir que as mensagens de commit sigam determinado padrão ou formato, como incluir um número de ticket válido ou ter um tamanho especificado;
  • Bloquear um branch ou repositório rejeitando todos os pushes;
  • Evitar a inclusão de dados confidenciais no repositório bloqueando palavras-chave, padrões ou tipos de arquivos.
  • Evitar que o autor da pull request faça merge em suas próprias alterações.

Veja exemplos de ganchos de pré-recebimento do GitHub Enterprise Server no repositório github/platform-samples.

Fluxos de trabalho e impacto no desempenho

O impacto para os desenvolvedores e seus fluxos de trabalho pode ser significativo e deve ser considerado atentamente. Hooks pre-receive baseados nas demandas corporativas e implementados com cuidado trarão mais benefícios para a organização como um todo.

Os ganchos de pré-recebimento podem ter efeitos indesejados no desempenho do sua instância do GitHub Enterprise Server e devem ser implementados e analisados com atenção.

Devido ao risco de falha e ao impacto no desempenho para todos os usuários da instância, recomendamos seguir as instruções abaixo.

  • Evite solicitações de API em um gancho de recebimento prévio. Especificamente, desencorajamos fortemente que faça solicitações a serviços externos, o que pode demorar mais tempo e agravar o impacto no desempenho.
  • Evite operações Git com execução prolongada em um gancho de recebimento prévio. Se o seu gancho de recebimento prévio executar operações Git em repositórios grandes ou ocupados, o Git e o desempenho geral da instância poderão ser afetados negativamente.

Observação: para evitar a rejeição de um push devido a um tempo limite, todos os ganchos de recebimento prévio agrupados devem ser executados em menos de cinco segundos.