jenkins git plugin http auth .netrc

desde la última actualización de jenkins y el plugin git, la authentication http vía .netrc ya no funciona. Realmente revisé muchos hilos sobre este tema.

Traté de usar también la variante http: // usuario: pass@url.tld/repo.git que funciona. Pero internamente proporcionamos un vm que contiene todos los trabajos necesarios para el desarrollo. Antes de la actualización, solo editamos el file .netrc en la carpeta de inicio de jenkins y jenkins funciona perfectamente.

También probé ya a través de la console git clone http: //url.tld/repo.git que funciona bien, incluso en el usuario de jenkins.

Aquí hay algunos detalles:

  • Jenkins: v1.536
  • Complemento de GIT: v2.0
  • Complemento cliente GIT: v1.4.5
  • GIT: 1.8.4.GIT
  • Centos: 6.4
  • Java: 1.6.0

El .netrc

machine url login user password pass 

Aquí el error de jenkins en la máscara de configuration: No se pudo conectar al repository: No se pudo conectar a http: // …. git (status = 401)

Estaría bien si alguien tiene una idea.

Este problema se detectó inicialmente con el complemento de cliente Git 1.4.3, y se supone que fue arreglado en 1.4.4 por Niqueues De Loof :
Vea el ejemplar 20175 .

Prueba y degrada el complemento de cliente git a 1.4.4.
Si 1.4.5 introdujo una regresión, entonces vuelva a abrir el número 20175.

La respuesta de Florian (upvoted) sugiere una posible causa para el complemento de cliente de git a 1.4.5, con respecto al formatting .netrc .

 machine hostname login user password secret 

(una sola línea, en lugar de varias líneas)

Florian insiste en los comentarios sobre la presencia de algunos errores:

  • Si tiene varios hosts definidos en el file .netrc , se tomará el primero, sin importar si es el correcto o no.
  • Además, bajo Windows, un file _netrc probablemente no se encuentre ya que no se busca en el directory de inicio del usuario de Jenkins.
    El plugin cliente de git (en este momento, noviembre de 2013) no lee (un file _netrc ) para recuperar las cnetworkingenciales.
    Funciona correctamente con .netrc , pero no con _netrc , sin importar si es Windows o Unix.
    Así que sugeriría tener un file .netrc idéntico en el directory de inicio en Windows, además del _netrc , hasta que se _netrc este error ( JENKINS-20688 ).

Menciona la presencia de un parche jenkinsci / git-client-plugin en GitHub .

Con el complemento 1.4.5 del cliente de Git, necesitarás usar un formatting diferente para tu file .netrc. El complemento de cliente Git requiere la información de un host en el file .netrc, todo en una sola línea. Entonces cambiando esto

 machine hostname login user password secret 

a esto

 machine hostname login user password secret 

debería hacer que funcione de nuevo.

Ciertamente no es la mejor implementación en el lado de los complementos, pero lamentablemente actualmente es el caso. Tenga en count que solo debe haber un espacio único entre las palabras en la línea. Evita el espacio en blanco al final, también.

Además de eso, debido a un error, se tomará la primera línea del file, independientemente de si el nombre de host coincide o no. Entonces, si necesita tener varios hosts en su file .netrc, eso no funcionará. O mejor dicho solo con el primero en la list. Sin solución conocida.

Tenga en count que si utiliza un file _netrc en Windows, es probable que no se encuentre, ya que el complemento de cliente git (en la versión 1.4.6) no lo busca en el directory de inicio del usuario de Jenkins. Un trabajo .netrc es tener un file .netrc en windows, también.

Aquí para agregar para todos los demás:

Enlace de descarga para los files de downgrade:

Git Client Plugin 1.0.7: http://mirrors.jenkins-ci.org/plugins/git-client/1.0.7/git-client.hpi

Git Plugin 1.4.0: http://mirrors.jenkins-ci.org/plugins/git/1.4.0/git.hpi

Tuve que degradar el complemento de Git Client a la versión 1.3.0 para que funcione nuevamente.

Aquí está el enlace de descarga: http://mirrors.jenkins-ci.org/plugins/git-client/1.3.0/git-client.hpi

FWIW, para mí la solución fue mencionada en el número 21015