У меня есть настройка gitosis на моем сервере, и я пытаюсь создать хук после получения, который будет проверять изменения в рабочем каталоге на удаленном компьютере.
Сначала я получил сообщение об ошибке cannot open /home/user/source/testing-local/.git/FETCH_HEAD: Permission denied
, поэтому я изменил групповое владение папкой .git рабочего каталога на пользователя git.
После этого я получил ошибку Host key verification failed
, которая заставила меня проверить, какой пользователь запускал ловушку, конечно же git (глупый я!), Поэтому я установил ключ в gitosis для пользователя git, под которым работает gitosis, и включил это в gitosis. конф. Теперь достаю старую Permission denied (publickey).
Мой хук post-receive выглядит так:
#!/bin/bash
while read oldrev newrev refname
do
if [ "$refname" == "refs/heads/master" ]; then
WORKDIR=/home/user/source/testing-local
export GIT_DIR=$WORKDIR/.git
pushd $WORKDIR >/dev/null
id
git pull --quiet >/dev/null
fi
done
Вызов id
предназначен только для проверки того, от имени какого пользователя я работаю.
Есть ли более простой способ добиться этого ?! Я пропустил что-то важное в своей настройке?