Git Hooks
Git Hooks to narzędzie pozwalające na automatyzację zadań w repozytorium git. Działają jak skrypty, które wykonują się w określonych momentach cyklu życia commitów, pushów i innych operacji. Dzięki nim możesz wprowadzić dodatkowe zabezpieczenia, automatyczne formatowanie kodu czy uruchamianie testów przed zmergowaniem zmian.
Najpopularniejsze git hooks
:
- pre-commit: Uruchamiany przed zapisaniem
commita
, umożliwia sprawdzenie kodu pod kątem błędów, uruchomienie testów lub formatowanie kodu. - commit-msg: Uruchamiany po wpisaniu komunikatu
commit
, pozwala na weryfikację formatowania i zgodności komunikatu z ustalonymi konwencjami. - pre-push: Uruchamiany przed wysłaniem zmian do zdalnego repozytorium, umożliwia uruchomienie testów i weryfikację jakości kodu.
W kontekście bibliotek komponentów, git hooks
mogą być używane do automatyzacji takich działań jak:
- Formatowanie kodu - Za pomocą
pre-commit
hooka możesz uruchamiać narzędzia takie jakPrettier
czyESLint
, aby upewnić się, że kod zawsze jest sformatowany zgodnie z ustalonym stylem. - Testy jednostkowe - Przy każdym commicie (hook
pre-commit
) lub przed pushem (pre-push
), możesz uruchomić testy jednostkowe za pomocąJest
lub innego frameworka testowego. - Sprawdzanie typów - Jeśli w bibliotece komponentów korzystasz z TypeScript, hooki mogą uruchamiać kompilator TypeScript (
tsc
). - Kontrola commit message - Dzięki hookowi
commit-msg
możesz sprawdzić, czy wiadomości commitów spełniają określone reguły, np. zgodność z konwencjąConventional Commits
. Może to być szczególnie przydatne, jeśli korzystasz z narzędzi takich jaksemantic-release
do automatyzacji wersjonowania i publikacji.
Aby zautomatyzować zarządzanie git hooks
w projekcie, warto wykorzystać narzędzie takie jak husky, które upraszcza tworzenie i zarządzanie hookami w projekcie git
. Dzięki Husky
, zamiast ręcznie tworzyć skrypty w folderze .git/hooks
, możesz zarządzać hookami bezpośrednio w pliku package.json
, co sprawia, że ich konfiguracja jest znacznie łatwiejsza.
Upewnij się również, że wszyscy członkowie zespołu są świadomi, jakie git hooks
są używane w projekcie i jakie zadania są automatyzowane. Dokumentacja powinna zawierać informacje o celach i konfiguracji poszczególnych hooków
.