2012-05-02 32 views
5

Estoy tratando de encontrar la forma de escribir un script bash que se auto-extraiga de nuestro repositorio privado de Github cada medianoche y actualice nuestro sitio de desarrollo.Bash Script para Push/Pull del repositorio privado de Git?

Nuestro repositorio es privado por razones obvias y todo lo que encontré siempre pide la frase de contraseña. Nuestro servidor tiene su propia cuenta de Github que utiliza para enviar y extraer del repositorio, pero simplemente no sé cómo hacerlo automáticamente.

¿Alguien puede indicarme la dirección correcta?

Respuesta

7

Para automatizar su push/pull, tendrá que configurar la autenticación sin contraseña. Para hacerlo, usa ssh (en lugar de https). Si no ha utilizado ssh con github, o no lo ha hecho antes, deberá realizar algunos pasos para configurarlo.

En el equipo, generar una clave ssh:

$ ssh-keygen -t rsa 

Asegúrese de dejar el campo contraseña en blanco. Esto deja la clave privada local desencriptada, pero no menos segura para la comunicación real a través de Internet.

Luego, cargue ~/.ssh/id_rsa.pub en github en Configuración de cuenta | Claves SSH

Ahora debería poder empujar y tirar desde esa máquina sin una contraseña. Pruébelo:

git clone [email protected]:user/repo.git 

Puede poner estos comandos en su secuencia de comandos bash, según corresponda. Si necesita hacer esto para varias máquinas, deberá cargar cada clave, o copiar la clave privada (~/.ssh/id_rsa) a cada una.

Ver github help para obtener más información. También eche un vistazo a la página deploy keys, ya que puede proporcionar una mayor granularidad de seguridad para su situación.

+0

¿Qué tal un "git pull"? Lo cloné cuando era público, ahora es privado y no puedo actualizarlo. ¡Gracias! –

+1

'git pull' no es diferente de' git clone', aunque opcionalmente puede configurar [diferentes URL de extracción y de inserción] (https://www.kernel.org/pub/software/scm/git/docs/git- remote.html). Te sugiero que verifiques la configuración de 'git remote' para asegurarte de que tu URL esté configurada correctamente. – djs

Cuestiones relacionadas