pre-commit: A framework for managing and maintaining multi-language pre-commit hooks