Skip to main content

Trabalhar com os hooks pre-receive

Imponha políticas de repositório e evite problemas como segredos ou confirmações inválidas usando ganchos de pré-recebimento no GitHub Enterprise Server.

Os ganchos de pré-recebimento são scripts que são executados em GitHub Enterprise Server antes que o Git aceite commits enviados por push. Eles impõem o repositório, a organização ou a política empresarial no ponto em que o código entra em um repositório.

Um hook de pré-recebimento pode verificar se um push segue as regras exigidas. Por exemplo, um gancho pode bloquear pushes que incluem segredos, usar mensagens de confirmação não padrão ou alterar arquivos protegidos. Se o push passar nas verificações, o Git o aceitará. Se o push falhar, o Git o rejeitará e mostrará uma mensagem de erro.

Se o push não for aceito, você verá uma mensagem de erro informando a falha no hook de pré-recebimento.

$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 916 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: always_reject.sh: failed with exit status 1
remote: error: rejecting all pushes
To https://54.204.174.51/hodor/nope.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://54.204.174.51/hodor/nope.git'

Os ganchos de pré-recebimento importam porque aplicam regras consistentemente antes que as alterações cheguem ao repositório. Isso pode reduzir a carga de revisão manual e impedir que violações de política sejam armazenadas no histórico do Git.

O administrador do site GitHub Enterprise Server cria e remove os hooks de pré-recebimento. Eles também podem permitir que administradores da organização ou do repositório habilitem ou desabilitem ganchos para escopos específicos. Consulte Aplicar política com hooks pre-receive.