git: fatal: no se pudo leer desde el repository remoto al clonar Cocoapod privado

Intento establecer un proyecto de iOS en Travis-CI por primera vez, y estoy teniendo problemas para que travis agregue un repository privado de especificaciones de pod.

Tengo un script anterior que ejecuta este command:

- gem install cocoapods - pod repo add MyPrivate-Repo git@github.com:myAccount/MyPrivate-Repo.git ... 

Sin embargo, recibo este error cuando travis intenta agregar mi repository de especificaciones de pod privado

 Cloning spec repo `MyPrivate-Repo` from `git@github.com:myAccount/MyPrivate-Repo.git` [!] Pod::Executable clone 'git@github.com:myAccount/MyPrivate-Repo.git' MyPrivate-Repo Cloning into 'MyPrivate-Repo'... ERROR: Repository not found. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

Ahora soy muy nuevo en esto, así que me disculpo si me falta algo obvio aquí.

Estoy seguro de que el repository sí existe, lo probé realizando una

 git clone git@github.com:myAccount/MyPrivate-Repo.git 

en mi máquina local. Eso significa derechos de acceso, supongo. ¿Cómo hago para verificar los derechos de acceso para eso? Travis parece funcionar bien clonando otros repos dentro de la misma organización? Cualquier ayuda muy apreciada !!

Funciona en su máquina, porque ssh sabe dónde search sus keys ssh públicas / privadas.

Pero necesita agregar esas keys (o, mejor aún, agregar una nueva key pública / ssh dedicada a su configuration travis) a Travis, para que ese entorno pueda autenticarse y acceder a su repository privado.

Ver Empujar a github desde travis-ci .

Tenga en count que puede usar travis encrypt en el file .travis.yml como en esta idea de Luke Patterson ( lukewpatterson ) .

Para cifrar la key SSH privada en las -secure: xxxxx..... " -secure: xxxxx..... " para colocar en el file .travis.yml , genere una key de implementación y luego ejecute: (para ver cómo son los datos encryptions, consulte un ejemplo en este .travis.yml .

 base64 --wrap=0 ~/.ssh/id_rsa > ~/.ssh/id_rsa_base64 ENCRYPTION_FILTER="echo \$(echo \"-\")\$(travis encrypt veewee-community/veewee-push \"\$FILE='\`cat $FILE\`'\" | grep secure:)" split --bytes=100 --numeric-suffixes --suffix-length=2 --filter="$ENCRYPTION_FILTER" ~/.ssh/id_rsa_base64 id_rsa_ 

¡Decir ah! se necesitan 30 líneas para exprimir todo.

Eso da algo como:

 env: global: - secure: "Y3Ox1GnYemOXPms5qUg//pnJBTh/9/kdnDa8BRXqurMaH6RuADcZnmSLjR7W\ny81/JuXMgToWN/+6zZALZyoYm87qRjjQAKfglA9nuSeXDSPhpERMXaf7RVUI\n8BpQYkmdY/HsQtGci4qqNfifQulp8TS/CpV+Kgx9k5JpulBeFow=" - secure: "ePKK/XhvRqBiHKFPZdh5rGgupABVQyYUQWvl2uzfqgCRZ6xGIU+ZW89iiL27\n3cSfEL1x1FAXPkpslNOscz4INYgl8+dUvnmwnSuT2b/9ekpeDEhTmC+L06si\n15NLKCK7TUnS3wJ/WkA27ij43X+ArOqsTi2xvTXTPdn4utLjfIM=" - secure: "C... ... ... 

Para reconstituir la key SSH privada una vez que se ejecuta dentro de Travis: (consulte el ejemplo de uso en este .travis.yml )


Otra técnica similar en esta esencia de Douglas Duteil ( douglasduteil ) , que declara en .travis.yml una secuencia de commands externa .

 before_script: .travis/before_script.sh echo -n $id_rsa_{00..30} >> ~/.ssh/id_rsa_base64 base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config