Introduzione agli hook Git

Completato

Il recapito continuo richiede un livello notevole di automazione. Non è possibile eseguire il recapito continuo se non si dispone di una codebase di qualità. È qui che entra in gioco git.

Consente di automatizzare la maggior parte dei controlli nella codebase. Prima di eseguire il commit del codice nel repository locale, senza considerare quello remoto.

Hook Git

Gli hook Git sono un meccanismo che consente l'esecuzione del codice prima o dopo determinati eventi del ciclo di vita Git.

Ad esempio, è possibile eseguire l'hook nell'evento commit-msg per verificare che la struttura dei messaggi di commit segua il formato consigliato.

Gli hook possono essere costituiti da qualsiasi codice eseguibile, tra cui shell, PowerShell, Python o altri script. Oppure possono essere costituiti da un eseguibile binario. Qualsiasi formato è corretto.

Gli unici criteri sono che gli hook devono essere archiviati nella cartella .git/hooks nella radice del repository e che devono essere denominati in modo da corrispondere agli eventi correlati (Git 2.x):

  • applypatch-msg
  • pre-applypatch
  • post-applypatch
  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • pre-rebase
  • post-checkout
  • post-merge
  • pre-receive
  • update
  • post-receive
  • post-update
  • pre-auto-gc
  • post-rewrite
  • pre-push

Casi d'uso pratici per l'uso di hook Git

Poiché gli hook Git eseguono gli script sul tipo di evento specifico su cui vengono chiamati, consentono di eseguire molte operazioni.

Alcuni esempi d'uso degli hook per applicare criteri, garantire la coerenza e controllare l'ambiente:

  • Applicazione delle precondizioni per il merge
  • Verifica dell'associazione dell'ID elemento di lavoro nel messaggio di commit
  • Impedire al team di eseguire il commit di codice difettoso
  • Invio di notifiche alla chat room del team (Teams, Slack, HipChat e così via)

Nella prossima unità si vedrà come implementare hook Git.