Crontab con SVN y Git

Crontab con SVN y Git

Tengo algunos repositorios que están tanto en SVN como en Git. Mi nombre de usuario es Guyfawkes y en mi directorio de inicio tengo la carpeta www que contiene todos mis repositorios. En este directorio también tengo el archivo update.sh:

[guyfawkes@guyfawkes-desktop ~/www]$ cat update.sh
cd /home/guyfawkes/www
cd crm
echo "upd crm"
svn up
echo "update crm completed"
echo "-------"
cd ../crm_sql
echo "upd sql"
svn up
echo "update sql completed"
echo "-------"
cd ../crm_old
echo "upd old"
svn up
echo "update old completed"
echo "-------"
cd ../mysqldiff
echo "upd mysqldiff"
git pull sotmarket master
echo "update mysqlidff completed"
git push origin master
echo "push to github completed"
echo "-------"
cd ../mysql-migration-manager
echo "upd mmmm"
git pull
echo "mmm updated"
cd data
echo "upd data"
git pull
echo "data updated"

Mi crontab es:

[guyfawkes@guyfawkes-desktop ~/www]$ crontab -l
*/5 * * * * /home/guyfawkes/www/update.sh

Entonces, funciona perfectamente con repositorios svn, pero tengo este correo en /var/spool/mail/guyfawkes (de cron):

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/guyfawkes>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=guyfawkes>
X-Cron-Env: <USER=guyfawkes>

upd crm

Fetching external item into 'public/old'
External at revision 32674.

At revision 483.
update crm completed
-------
upd sql
At revision 29.
update sql completed
-------
upd old
At revision 32674.
update old completed
-------
upd mysqldiff
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
update mysqlidff completed
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
push to github completed
-------
upd mmmm
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
mmm updated
upd data
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
data updated

¿Cómo puedo solucionarlo?

Respuesta1

El problema es que estás intentando actualizar desde github, lo que requiere una clave ssh. Cree una clave ssh dedicada sin contraseña en su servidor y agréguela a su cuenta de github o use la uri de solo lectura http para actualizar su repositorio:

git pull --mirror https://github.com/account/repository.git

información relacionada