git clone - falha em vez de solicitar credenciais

8

Ao clonar repositórios git em ferramentas automatizadas - front-ends da web, sistemas de CI, às vezes a chamada do clone git abre um prompt solicitando o nome de usuário e senha (por exemplo, ao clonar um repositório Github inexistente ou em um novo nó faltando chaves ssh).

Como faço para que o git simplesmente falhe (de preferência com uma mensagem de erro sensata e código de saída) em vez de esperar que o processo do servidor forneça um nome de usuário e senha?

    
por Tin Tvrtković 06.10.2013 / 20:33

3 respostas

7

Na versão 2.3 do git, há uma variável de ambiente GIT_TERMINAL_PROMPT que, quando definida como 0 , desativará a solicitação de credenciais.

Você pode obter mais informações sobre isso em man git (depois de atualizar para a versão git 2.3 ) ou em este post no github .

Exemplos:

  • git clone https://github.com/some/non-existing-repo solicitará o nome de usuário & senha
  • GIT_TERMINAL_PROMPT=0 git clone https://github.com/some/non-existing-repo falhará sem solicitar o nome de usuário & senha
por 08.02.2015 / 16:16
0

Dependendo de como você está executando o git, redirecionar stdin ou stdout para que eles não estejam conectados aos terminais irá parar o git de pedir detalhes e apenas causar erros.

Isso também permite que você localize erros (ou pelo menos logs) no serviço da Web.

    
por 11.10.2013 / 04:19
0

Se você estiver usando a autenticação ssh e no linux, você pode criar uma substituição de comando ssh para desabilitar isso.

Crie um arquivo chamado "sshnoprompt.sh" com:

ssh -oBatchMode=yes $@

Tornar este arquivo executável com chmod +x sshnoprompt.sh

Então, ao iniciar o git:

GIT_SSH="sshnoprompt.sh" git clone foo@dummyserver:not_a_repo

E ele não permitirá solicitações ou perguntas interativas do Git. Ele não deve ser capaz de perguntar nada ao usuário.

    
por 02.12.2013 / 16:10