Obtenga CruiseControl para hablar con github con la key pública correcta

Alguien ha instalado git y ControlControl y ha conseguido que CruiseControl lo extraiga de GitHub en un server de Windows 2003.

Sigo recibiendo ' public key errors (access denied) ' – Lo cual es bueno, supongo, ya que eso confirma que git está hablando con GitHub.
Sin embargo, lo que no es bueno es que no sé dónde instalar las keys rsa para que sean recogidas por el process en ejecución (git en el context de cc.net ).

¡Cualquier ayuda me ahorraría mucho pelo!

He intentado instalar las llaves;

 c:\Program Files\Git.ssh 

Por lo que ejecutar git bash y cd ~ llevarme a: c:\Program Files\Git

El error actual de CC.net es un post de error:

 ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: Permission denied (publickey). fatal: The remote end hung up unexpectedly . Process command: C:\Program Files\Git\bin\git.exe fetch origin 

Gracias por adelantado

Aquí están mis notas para hacer que CruiseControl.net trabaje con un repository de github (en Windows). Estoy ejecutando msysgit 1.7.3.1 en Windows 7. Configuré ccnet para que se ejecute como un service.

La estrategia que sigo es crear una count de usuario que usará el service ccnet. Comience por iniciar session en la compilation como el usuario que ejecuta la console de control de crucero. Después de que eso funcione, configuro la count de service para que se ejecute usando esa count de usuario.

Primero, configure sus keys SSH para ese usuario del mismo modo que lo haría con otro usuario. No obstante, no use una frase de contraseña. Eso causará que ccnet agote el time de espera en la input del usuario. (la administración de keys de github ssh tiene ayuda, http://help.github.com/msysgit-key-setup/ )

También necesitarás clonar la repro en algún lugar mientras estés conectado a ese usuario. Se mantiene una list de hosts confiables, esto asegura que el host esté en esa list (creo que con sus keys .ssh). Si no está en la list, el control de crucero agotó el time de espera, ya que git espera que digas si confías en el host.

Otorgue al usuario permissions de lectura / escritura en la carpeta donde está instalado el control de crucero. También otorgue permissions al usuario para editar las carpetas de compilation que use, independientemente de los resources a los que deba acceder su compilation.

El file de configuration de control de crucero necesitará usar un bloque de control de fuente git.
Aquí están los documentos en ese bloque. Aquí hay una muestra:

 <project name="NJasmine"> <sourcecontrol type="git"> <repository>git://github.com/fschwiet/DreamNJasmine.git</repository> <branch>master</branch> <autoGetSource>true</autoGetSource> <executable>$(gitpath)</executable> <tagOnSuccess>false</tagOnSuccess> <commitBuildModifications>false</commitBuildModifications> <commitUntrackedFiles>false</commitUntrackedFiles> <workingDirectory>c:\build\NJasmine.git</workingDirectory> <timeout>60000</timeout> </sourcecontrol> ... </project> 

Notarás que uso una variable para gitPath, así solo la defino una vez. Mi file de configuration de ccnet principal realmente hace reference a lo anterior, se ve algo así como a continuación. Al hacer reference a un file de configuration externo, puedo mantener la mayor parte de mi configuration de ccnet en control de fuente:

 <!DOCTYPE cruisecontrol [ <!ENTITY njasmine SYSTEM "file:c:\src\njasmine\ccnet.config.xml"> ]> <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <cb:define gitpath="C:\Program Files (x86)\Git\cmd\git.cmd"/> &njasmine; </cruisecontrol> 

Tenga en count que configuro la ruta de acceso de git a "C: \ Archivos de progtwig (x86) \ Git \ cmd \ git.cmd" y no a "C: \ Archivos de progtwig (x86) \ Git \ bin \ git.exe". Nunca podría hacer funcionar bin \ git.exe. También encontré que las URL de solo lectura en un repository compartido son más fáciles de usar que las URL de lectura / escritura, así que use las de solo lectura.

Realmente depende del usuario real declarado en el service CruiseControl para ejecutar los trabajos.

Teniendo en count el post de error " Permission denied (publickey) " generalmente es causado por keys ssh no encontradas en %HOME%/.ssh .

Entonces, incluso si cd ~ lleva a un directory, puede que no sea el utilizado por el process CruiseControl.