Я пытаюсь добавить свои хуки в репо на сервере, чтобы тот, кто клонировал репо, прошел через это перед отправкой на сервер Gitlab. На данный момент я создал файл pre-receive в папке custom_hooks в /. Git / custom_hooks и добавил к нему скрипт. Ниже приведен мой файл предварительного получения.
#!/bin/bash
zero_commit="0000000000000000000000000000000000000000"
excludeExisting="--not --all"
while read oldrev newrev refname; do
# echo "payload"
echo $refname $oldrev $newrev
# branch or tag get deleted
if [ "$newrev" = "$zero_commit" ]; then
continue
fi
# Check for new branch or tag
if [ "$oldrev" = "$zero_commit" ]; then
span=`git rev-list $newrev $excludeExisting`
else
span=`git rev-list $oldrev..$newrev $excludeExisting`
fi
for COMMIT in $span;
do
for FILE in `git log -1 --name-only --pretty=format:'' $COMMIT`;
do
echo "rejecting all pushes"
exit 1
done
done
done
exit 0
Затем я клонировал репо на локальном компьютере Windows и попытался отправить его. Но ожидаемого эффекта это не произвело. Он все еще был отправлен на сервер.
Я новичок в Gitlab и Git хуках. Я не знаю, неверен ли мой файл pre-receive или я ошибаюсь. Пожалуйста, позвольте мне добавить хуки на сервер, чтобы он проверял / работал для тех, кто клонировал мое репо. Пожалуйста помоги. Заранее спасибо.