Olá Pessoal,
Quebrei a cabeça esses dias tentando fazer o jenkins se comunicar com um repositório privado no GitHub. Considerando que o jenkins está em um servidor remoto, deu muito trabalho, gastei umas 12hrs até funcionar.
O Problema:
jenkins github private repository returned status code 128:
Essa é a exceção que recebemos quando o Jenkins tenta conectar ao repositório privado para fazer o clone.
O motivo?
O Jenkins não consegue autenticar para fazer o clone.
O que achei?
Não fui muito feliz achando que era da mesma forma que fazemos com repositório público, que apenas gerar o ssh key e adicionar no github. Mas não é bem assim.
Solução
Para resolver o problema eu tive que adicionar 2 ssh key.
- Gerei um ssh específico (algo como id_rsa_meuprojeto);
- Peguei o id_rsa que já tinha no meu servidor e adicionei ao github.
Resumindo em steps
1. Passphrase não pode ter password, ou seja, deixar empty para o id_rsa_meuprojeto
2. Criei um key específico id_rsa_meuprojeto e adicionei no github e dei authorized no servidor pelo painel. No meu caso uso integrator
3. Adicione o id_rsa do servidor no github
4. No Jenkins usei key do id_rsa_meu projeto
Veja na imagem a seguir:
E no Jenkins informe o repositório assim:
Ou seja, usando git@github.com:youruser/yourproject
Não use Https, porque não vai.
É isso ai, só buildar e ver o clone rolando.
Abraços, see ya!!