2012-01-11 22 views
5

Tengo un pequeño problema con Jenkins y repositorios privados de Github. Para comprobar a cabo un acuerdo de recompra privado, por lo general se necesita una de dos cosas:¿Cómo puedo pagar varios repositorios privados de Github usando Jenkins

  • la clave SSH privada de un usuario en ese repo
  • la clave SSH privada de una "clave de distribución" registrada para ese repo

La clave de implementación se creó para este tipo de interacción. El problema es que las claves de implementación deben ser únicas en todos los proyectos, por lo que tendré que usar una clave diferente cada vez. Esto significa que tendría que agregar otra clave al agente de ssh para el usuario de Jenkins por cada repositorio adicional.
Esto también significa que, de forma predeterminada, el agente probará todas las claves disponibles y probablemente se desconectará la conexión después de unos pocos intentos fallidos con una clave incorrecta.

El complemento de Jenkins git no parece permitir que apunte a una tecla SSH. Jenkins no permite ninguna interacción con la línea de comandos antes del pago, por lo que no puedo usar ningún trucos de bash para establecer la clave correcta.

Hasta ahora la única solución parece ser:

  1. crear un usuario "my_jenkins_account" en github
  2. Añadir una clave pública para el usuario
  3. Agregar la cuenta a pases que me gustaría de revisar el uso de Jenkins
  4. Añadir clave privada del usuario para el usuario Jenkins

Cualquier sugerencia alternativa?

Respuesta

13

Esto no es exactamente una respuesta, solo un eco en la oscuridad para hacerte saber que hago más o menos lo mismo.

  1. Run Jenkins como un usuario llamado jenkins
  2. sudo como este usuario y crear un ssh clave pública
  3. Crear una cuenta gratuita GitHub llamados myorg-machines
  4. Agregar clave pública SSH del usuario jenkins a la cuenta myorg-machines teclas en GitHub. Nombré esta clave jenkins on server.name.com para mantener las cosas organizadas.
  5. Crea un equipo de GitHub llamado Machines - Pull only. Agregue el usuario de GitHub myorg-machines a ese equipo y dele a ese equipo acceso a mis repositorios privados apropiados.

Estoy de acuerdo, parece klunky, pero en realidad ha sido bastante fácil de gestionar más de un año más o menos ahora.

+1

Gracias, estamos ejecutando esta configuración ahora también. Funciona, pero todavía se siente mal :( –

+0

Bueno, de alguna manera, el servidor jenking _acts_ como usuario adicional para sus repositorios. Es, por así decirlo, una entidad separada que actúa en los repositorios. No es completamente irracional mapear esta entidad a un usuario de github. (Dicho esto, todavía es un poco complicado, como se ha dicho. Pero tenemos que hacer, a qué vamos ...) – Cornelius

Cuestiones relacionadas