Já existem algumas perguntas com respostas de como baixar o arquivo ZIP dos repositórios do GitHub, mas não funcionam se o repositório for privado.
Eu sei que deve funcionar de wget
alguma forma, pois funciona com curl
:
curl -u <USER> -L -o <FILENAME> https://github.com/<USER>/<REPO>/archive/master.zip
A linha acima pedirá <USER>
a senha, baixe o arquivo ZIP do branch master e salve-o como <FILENAME>
. No entanto, o wget
equivalente não funciona:
wget --user=<USER> --ask-password --output-document=<FILENAME> https://github.com/<USER>/<REPO>/archive/master.zip
Resulta emERROR 404: Not Found.
Parece que o github.com não está se comportando educadamente ao dizer que o recurso não existe quando uma solicitação GET não autenticada é feita. Normalmente
wget
, primeiro tentará solicitar o recurso sem autenticação e tentará novamente com esses dados de autenticação quando um erro 401 Not Authenticated for fornecido.Isso pode ser contornado passando
--auth-no-challenge
para quewget
envie os dados de autenticação pela primeira vez.