Git hooks – инструмент, помогающий держать в порядке ваш репозиторий. Можно настроить автоматические правила оформления ваших коммитов.
Все вы наверное знаете про pre-commit — проверку вашего кода перед коммитом. Но ведь не все можно проверить перед коммитом. Некоторые ограничения хочется использоваться глобально на всем Gitlab.
Кто запутался в pre-commit и pre-receive хуках, в этом посте описываются различия между ними в абзаце "What are git hooks?".
Если у вас Gitlab Enterprise Edition, вы можете настроить хуки, которые описаны в посте через WEB интерфейс.
Но что делать, если у вас Gitlab Community (Core) Edition?
В этой статье будут описаны 5 pre-receive хуков, которые выполняются на сервере Gitlab Community (Core) Edition:
- block_confidentials.sh — Блокирование отправки приватных ключей и AWS токенов
- block_file_extensions.sh — Блокирование отправки архивов (Regex настраивается)
- check-large-files.sh — Блокирование отправки больших файлов (Размер настраивается)
- reject-not-allowlist-email.sh — Блокирование коммитов с email не из allow списка (Список email доменов настраивается)
- require-issue.sh — Блокирование коммитов без issue в названии (Список issue настраивается)