2012-02-22 19 views
6

Estamos usando gitolite para administrar nuestros repositorios y uno de nuestros proyectos heroku tiene submódulos de git. ¿Hay alguna forma de obtener la clave pública de Heroku para la autenticación?heroku + git submódulo necesita autenticación

Gracias, David

+1

No sería cualquier persona que utilice Heroku sería capaz de tirar de ese submódulo? Además, vale la pena comprobar si Heroku tiene una clave pública/privada disponible durante la compilación de slug. – kanzure

Respuesta

10

No, probablemente no. En su lugar, puede usar la autenticación básica HTTPS cuando crea el submódulo en su repositorio de git, similar to deploying private gems to Heroku. Se ve algo como esto:

git submodule add https://username:[email protected]/username/repo.git 
+2

github ha lanzado una nueva característica para esto: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth – kanzure

+0

Intenté esto hoy y obtuve esto : 'fatal: no manejo el protocolo 'git clone https'' –

+0

¿Qué escribiste exactamente? – kanzure

3

También puede cometer un directorio .ssh que contiene una clave id_rsa dedicado ("clave de implementación") que se ha registrado en GitHub, ya sea con su cuenta o una cuenta de despliegue dedicado. No se olvide de chmod 0660 la clave.

+2

¿A dónde debería ir la carpeta .ssh? – acjay

+1

Sí, ¿cómo funciona esto? –

+1

Hay una mejor solución ahora usando un buildpack: https://github.com/timshadel/heroku-buildpack-github-netrc –

1

Hay otra solución para @kanzure enfoque: https://stackoverflow.com/a/29464430/990356

Ir a Settings > Personal access tokens y generar un token de acceso personal con repo alcance permitido.

Ahora usted puede hacer git clone https://[email protected]/user-or-org/repo y en el caso de un submódulo git submodule add https://[email protected]/user-or-org/repo

Pros:

  • enfoque muy simple
  • testigo puede ser revocado fácilmente
  • su contraseña real es seguro

Contras:

  • si alguien tiene acceso a la clave, se puede acceder a los repositorios de GitHub (leer y escribir)