Abbiamo avuto la necessità di recuperare una zipball di un repository privato. Per quelli pubblici è piuttosto facile tramite GitHub API o manualmente (https://github.com/user/repo/zipball/master). Ma per quanto riguarda i repository privati? Non esattamente ovvio come farlo anche con token oAuth.Esiste comunque la possibilità di scaricare a livello di programmazione una zipball di repository privato di github?
risposta
nuova alternativa
Poiché la data risposta accettata non funziona più, ho pensato di spiegare come sono stato in grado di farlo con i nuovi cambiamenti nella API github.
il nuovo download Api link
In primo luogo, ho trovato informazioni su come scaricare l'archivio qui: https://developer.github.com/v3/repos/contents/#get-archive-link
pubblico Repo
Se si tratta di un pronti contro termine pubblico allora è molto facile ... si può fare:
curl -L https://api.github.com/repos/pengwynn/octokit/tarball > octokit.tar.gz
Repo privato
Se è si tratta di un pronti contro termine privato, è necessario creare un token OAuth andando al vostro profilo e quindi selezionando "Applicazione". (https://github.com/settings/applications) Ho creato un token personale.
Poi seguendo le istruzioni nella pagina seguente ho scoperto come ottenere repo privata che avete il permesso di: https://developer.github.com/v3/#authentication
Codice completa
Ti piace questa
curl -H "Authorization: token ab499f3b..." \ -L https://api.github.com/repos/godzilla/my_priv_repo/tarball > wut.tar.gz
Be sicuro di sostituire ab499f3b...
con il tuo token effettivo.
Non sembra che si verifichi un problema durante il download di un file zip dai repository privati. Io uso lo stesso formato che hai specificato e funziona perfettamente.
Io uso OAuth2 per ottenere i repository ma costruisco il collegamento per lo zip ball utilizzando il formato che hai fornito. Here is the application Io faccio questo.
Se stai cercando di ottenere un token OAuth2, usa il formato GitHubt API v3, è piuttosto semplice. Anche se questo non va bene per il problema esattamente:
This è come ottenere un token OAuth2 da GitHub per this chrome extension
UPDATE
@jayarjo I build the URL here on line 202. Ho appena creato l'URL come quello che hai specificato, il token OAuth2 non è nemmeno usato per questo. Tutto il mio token mi consente di recuperare tutti i dati privati degli utenti prima di creare il markup. Ma funziona senza alcun problema ...
Penso che il motivo per cui sono effettivamente in grado di scaricare lo zipball è perché l'URL è in realtà per https://github.com/ * e perché attualmente sto Firmato a causa della OAuth2 ho il permesso di ottenere a quell'URL: dove sembra che tu non sia così ottieni un errore 404.
È possibile provare a inviare una richiesta alla pagina e se si riceve una risposta di errore, chiedere all'utente di eseguire prima il login, quindi quando si richiede lo zipball non si dovrebbe ottenere alcun problema.
Strano ... Ricevo l'errore "non trovato" ogni volta che provo. Inoltre, quando si utilizza lo stesso formato, non ho specificato dove collocare il token in quel punto? .. Puoi collegare una specifica riga di codice dove lo fai? – jayarjo
@jayarjo Aggiornato la mia risposta - in sostanza l'utente deve essere loggato affinché l'URL sia disponibile per loro. Quindi non avrai un 404 – jjNford
Ma prendo il token (voglio dire che ce l'ho nel momento in cui provo quell'URL). Ma questo è tutto ciò che fai e funziona? Forse trascuro qualcosa di semplice qui ... – jayarjo
con CURL:
curl -L -F "login=$USER" -F "token=$TOKEN" https://github.com/$USER/$REPO/$PKGTYPE/$BRANCHorTAG
dove $TOKEN
è il token API sul profilo github, non un token OAuth2 utilizzato per comunicare con l'APIv3.
è l'account utente a cui è collegato il token, non necessariamente l'organizzazione/altro utente a cui appartiene il repository. La seconda istanza di $USER
è l'utente/account del repository.
$REPO
è il nome del repository privato
$PKGTYPE
è tarball o zipball e $BRANCHorTAG
è un ramo, come il padrone, o un nome di tag per un commit.
La prima istanza di $USER
deve avere accesso al repository appartenente alla seconda istanza di $USER
.
Non ho potuto trovare questo documento DOVUNQUE, quindi ho anche un po 'di scrivere su di esso se volete qualcosa di più dettagliato.
Non sono sicuro che funzioni più: http://stackoverflow.com/questions/10418596/cant-find-api-token-in-github –
È possibile utilizzare l'autenticazione di base o il metodo basato su token. Vedi https://help.github.com/articles/downloading-files-from-the-command-line per maggiori dettagli.
mi sono imbattuto lo stesso problema e questo ha funzionato per me (come di febbraio 2015):
curl -O -J -L -u $YOUROAUTHKEY:x-oauth-basic https://github.com/$USER/$REPO/archive/master.zip
L'ouath come soluzioni di intestazione non ha funzionato per me, ma che cosa ha funzionato era ripieno la chiave nella nome utente e tipo di specifica. Quindi ha dato un 302 per reindirizzare con il link corretto.
comando verbose davvero mi ha aiutato a guasti di se le credenziali stavo usando venivano accettati o no (404 vs 401)
- 1. C# esempio di scaricare GitHub repo privato a livello di codice
- 2. Esiste comunque la possibilità di scrivere applicazioni Android in PHP?
- 3. Esiste comunque la possibilità di convincere Python a getopt a gestire i parametri opzionali alle opzioni?
- 4. Esiste comunque la possibilità di generare visualizzazioni Razor (.cshtml) basate su un modello accanto a T4?
- 5. Esiste comunque la possibilità di specializzare un modello basato sui membri di un parametro in C++?
- 6. Esiste comunque la possibilità di ridurre il tempo di avvio nrepl (ritz-repl)?
- 7. Esiste una guida definitiva per la creazione di cassette postali di Exchange a livello di programmazione?
- 8. c'è comunque da recuperare a livello di programmazione nella console di sviluppo di Google Play?
- 9. Esiste comunque la possibilità che RubyMine scelga la prima scelta di completamento come Intellij Idea?
- 10. L'immagine di Github readme viene incorporata nel repository privato?
- 11. Esiste comunque la possibilità di non contare i caratteri speciali come parole?
- 12. Come posso scaricare file binari di una versione di GitHub?
- 13. Pagine private per un repository Github privato
- 14. Come ignorare a livello di programmazione una notifica di PhoneGap
- 15. Costruire a livello di programmazione una soluzione di Visual Studio?
- 16. Imposta gravità di una vista a livello di programmazione
- 17. Come animare lo scorrimento a livello di programmazione
- 18. Esiste comunque la possibilità di scrivere quanto segue come macro C++?
- 19. Esiste comunque la possibilità di scoprire quali indirizzi IP sono collegati al db?
- 20. Esiste comunque la possibilità di modificare le scorciatoie da tastiera in eclissi?
- 21. Server di repository SVN pubblico o privato?
- 22. come inviare sms a livello di programmazione?
- 23. Docker: vai da un repository privato GitHub
- 24. , verificare a livello di programmazione
- 25. Bundle: Installare gemma dal repository github privato
- 26. Esiste comunque la possibilità di scrivere dati su più tabelle di redshift utilizzando un singolo flusso di consegna firehose
- 27. Ordinamento di JTable a livello di programmazione
- 28. creazione di uiview a livello di programmazione?
- 29. Download di un repository privato GitLab
- 30. disinserire a livello di programmazione un'applicazione predefinita
che cosa è questo "Zipball" Potete per favore darmi po 'più di descrizione. –
È un file zip. – CMCDragonkai