2013-10-14 16 views
5

Sto provando a scaricare uno script di installazione di un progetto che si trova in un repository protetto da Github.Come ottenere solo un file da un repository Github PROTECTED

user e repo sotto sono sostituite dalle informazioni corrette. ricciolo

ho provato:

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

Curl richiede la password, ma non appena ho digita il primo carattere che va oltre e download qualcosa (un sacco di JS probabilmente da Github)

I wget anche provato:

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

Con wget posso entrare la password completa, ma poi ricevo un errore 503:

012.
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. 

Come posso ottenere il file install.sh? (Sto facendo funzionare questo da un server di Ubuntu 13.04)

+1

possibile duplicato di [Come posso scaricare un singolo file raw da un repo github privata utilizzando la riga di comando?] (Http: // StackOverflow .com/questions/18126559/how-can-i-download-a-single-raw-file-da-a-private-github-repo-using-the-comman) –

risposta

0

È necessario creare un token OAuth come spiegato c'è: Github basic authentication

quindi è possibile utilizzare il seguente comando, Curl ottenere un URL temporaneo quindi è necessario usare ' -L' in curl per seguire il reindirizzamento:

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

è anche possibile utilizzare -o 'nomefile' per salvarlo su disco

+0

Ho provato questo e questo non funziona. Ottieni un errore 503 (anche con reindirizzamenti) –

5

E la risposta ufficiale da parte dei ragazzi Github è:

Thanks for getting in touch! For this case, you'll want to use our API to download individual files:

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

With this endpoint, you can get a specific file like this:

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

You'll just be prompted for your GitHub account password in this case, or you can also use an OAuth token as well. For reference, our API Getting Started Guide has a nice section on authentication:

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

E questo funziona come un fascino!

Grazie Robert @ Github

2

È possibile utilizzare l'API V3 per ottenere un file raw come questo (avrete bisogno di 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

Tutto questo deve andare su una riga. L'opzione -O salva il file nella directory corrente. È possibile utilizzare -o filename per specificare un nome file diverso.

Per ottenere il token OAuth seguire le istruzioni qui: https://help.github.com/articles/creating-an-access-token-for-command-line-use

Questo permette una migliore automazione se, ad esempio, bisogno di fare questo da uno script di shell.

ho scritto questo come una sostanza così: https://gist.github.com/madrobby/9476733

Problemi correlati