You can install a side-wide hook, but it is not very well documented. Gitlab is currently integrating gitlab-shell
and gitaly
. So providing instructions is a bit of a moving target, but they are valid as of the release of 12.3.5.
The scripts in gitlab-shell/hooks/*
scan the current repository and site wide directories. However, the site wide directories will not be created at a clean install and you need to create them yourself.
mkdir -p <XXX>/gitlab-shell/hooks/pre-receive.d # or update.d or post-receive.d
chown git:git <XXX>/gitlab-shell/hooks/pre-receive.d
# link or copy your script of course it needs to be executable by the Gitlab user
ln -s /usr/bin/my-hook <XXX>/gitlab-shell/hooks/pre-receive.d/my-hook