Cómo get solo un file de un repository de Github PROTECTED

Estoy tratando de download un script de installation de un proyecto que está en un repository protegido de Github.

user y el repo continuación se reemplazan por la información correcta.

He intentado curl:

 curl -u gabipetrovay -L -o install.sh "https://raw.github.com/user/repo/master/admin/scripts/install.sh" 

Curl solicita la contraseña, pero tan pronto como escribo el primer carácter voy más allá y descargo algo (muchos JS probablemente de Github)

También intenté wget:

 wget --user=gabipetrovay --ask-password "https://raw.github.com/user/repo/master/admin/scripts/install.sh" 

Con wget puedo ingresar mi contraseña completa pero luego aparece un error 503:

 Resolving raw.github.com (raw.github.com)... 199.27.73.133 Connecting to raw.github.com (raw.github.com)|199.27.73.133|:443... connected. HTTP request sent, awaiting response... 503 Connection timed out 2013-10-14 10:18:45 ERROR 503: Connection timed out. 

¿Cómo puedo get el file install.sh? (Estoy ejecutando esto desde un server de Ubuntu 13.04)

Y la respuesta oficial de los chicos de Github es:

Gracias por ponerse en contacto! Para este caso, querrá usar nuestra API para download files individuales:

http://developer.github.com/v3/repos/contents/#get-contents

Con este punto final, puede get un file específico como este:

 curl -u gabipetrovay -H "Accept: application/vnd.github.raw" "https://api.github.com/repos/user/repo/contents/filename" 

En este caso, se le solicitará la contraseña de su count GitHub, o también puede usar un token OAuth. Como reference, nuestra Guía de inicio de API tiene una buena sección sobre authentication:

http://developer.github.com/guides/getting-started/#authentication

¡Y esto funciona como un encanto!

Gracias Robert @ Github

Puedes utilizar la API V3 para get un file sin formatting como este (necesitarás un token OAuth):

curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path

Todo esto tiene que ir en una línea. La opción -O guarda el file en el directory actual. Puede usar -o filename de -o filename para especificar un nombre de file diferente.

Para get el token de OAuth, siga las instrucciones que se encuentran aquí: https://help.github.com/articles/creating-an-access-token-for-command-line-use

Esto permite una mejor automation si, por ejemplo, necesita hacer esto desde un script de shell.

También escribí esto como una esencia: https://gist.github.com/madrobby/9476733

Debes crear un token oauth como se explica allí: authentication básica Github

luego puede usar el siguiente command, curl get una url temporal por lo que necesita usar '-L' en curl para seguir la networkingirección:

 curl -L -u <your token>:x-oauth-basic https://raw.github.com/user/repo/master/admin/scripts/install.sh 

También puede usar -o "nombre de file" para savelo en el disco