I like that it is easy to use, has many features out of box including checking if files are changed in Git repository or not as well as comparing versions with branch names. It also allows me easily add custom rules per languages which helps reduce number of changes made by hand when implementing new language feature (like adding support for nullable types). The documentation could be improved; most examples do show how one should setup hook but they don't explain why this particular approach works better than others so you have no idea what's wrong there without reading source code yourself - unless your project manager insists otherwise ;-) Also sometimes some information about differences between different implementations can help too because e.g., while using PreCommit v1 we had issue where our commit messages were shown twice instead only once due to bug inside implementation itself since version 2 fixes these issues. Using gitLab CI integration was very simple even though docs weren’t exactly clear at first glance.