I have gitosis setup on my server and I'm trying to create a post-receive hook that will checkout changes to a working directory on the remote machine.
Initially I got an error saying cannot open /home/user/source/testing-local/.git/FETCH_HEAD: Permission denied
so I changed the group ownership of the working directory's .git folder to the git user.
Following this I got the error Host key verification failed
which led me to check which user was running the hook, git of course (silly me!), so I setup a key in gitosis for the git user that gitosis is running under and enabled that in gitosis.conf. Now I'm getting the old Permission denied (publickey).
My post-receive hook looks like this:
#!/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
The id
call is just to check which user I'm running as.
Is there an easier way to achieve this?! Have I missed something key in my setup?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…