Como configurar o tratamento automático de senhas para comandos do git:

1

Eu tenho um script de compilação automática para o meu servidor de compilação que cria aplicativos Android. Como parte desse processo de construção, preciso extrair as fontes atuais do repositório para fazer um release e fazer um comando push no final do processo de construção para atualizar o repositório com os arquivos que foram alterados durante o processo de construção pelo build servidor.

Então eu tenho que construir o seguinte script bash:

#!/bin/bash
clear
echo "Start of Pull command"
git pull
echo "End of Pull command"
echo "Start of incrementedRelease build"
gradle incrementedRelease
echo "End of incrementedRelease build"
echo "Start of Commit command"
git commit -a -m "======================== Commit to change Manifest Version ======================"
echo "End of Commit command"
echo "Start of Push command"
git push
echo "End of Push command"

O problema está no comando git push e git pull , git me pede uma senha.

Agora eu tentei executar este comando para criar um repositório de senhas, antes de digitar a senha do git.

  sudo git config --global credential.helper store

com e sem o comando sudo , mas da próxima vez que eu executar o script, ele ainda me solicitará uma senha.

Alguém poderia me dizer como eu posso armazenar a senha do git para que eu não seja perguntado por cada comando pull ou push? preferivelmente pegue-o de um arquivo, e não use ssh, porque eu não tenho acesso ao servidor git para gerar as chaves lá ..

ATUALIZAÇÃO: Esta é a pasta que tenho na pasta pessoal do usuário:

Obrigado antecipadamente.

    
por Emil Adz 17.09.2014 / 13:18

2 respostas

1

A configuração da opção credential.helper config para store deve, definitivamente, fazer o que você está pedindo. Você ainda precisará digitar seu nome de usuário e senha pelo menos uma vez para git-credential- armazenar para armazená-lo em um arquivo ( ~/.git-credentials por padrão), mas você não precisará mais fazer isso.

Observe que o arquivo que armazena suas credenciais não será criptografado e qualquer pessoa que conseguir lê-lo receberá as permissões do usuário no repositório, portanto, convém configurar um usuário somente leitura especialmente para isso e não definir globalmente a opção credential.helper config para store .

Se você estiver usando uma interface da Web em seu repositório ( Github , Bitbucket , Gitlab , etc), você também pode ter a possibilidade (preferida, imho) de configurar uma chave de implantação SSH através das configurações do repositório para fornecer acesso seguro, somente leitura.

    
por 19.09.2014 / 12:05
0

Assumindo que você está no Linux: Este tutorial descreve como estabelecer um ssh-conexão para um servidor remoto sem digitar sua senha.

Se você seguir estas etapas, o git não solicitará mais suas credenciais.

Além disso, você poderá usar ssh da linha de comando para o seu servidor sem senha.

    
por 17.09.2014 / 14:30