2013-02-06 6 views
11

Nel API GitHub, posso emettere una richiesta GET diGitHub API: Fetch tutte le cartelle ei file in singola richiesta GET

https://api.github.com/repos/owner/repo/git/trees/master?recursive=1

a prendere in modo ricorsivo tutti gli alberi di un repository. Oltre a darmi tutte le directory, mi dà URL che posso usare per scaricare singoli file:

[...] 
{ 
    "mode": "100644", 
    "type": "blob", 
    "sha": "abc1234", 
    "path": "path/to/file.txt", 
    "size": 104361, 
    "url": "https://api.github.com/repos/owner/repo/git/blobs/abc1234" 
}, 
[...] 

mentre il pezzo recursive=1 mi impedisce di dover fare una nuova richiesta GET per ogni directory nel repository , Devo ancora effettuare una chiamata individuale per ogni file. Ho esaminato lo GitHub API Docs, ma non presentano un modo per farlo. È molto probabile che semplicemente non ci sia un modo per recuperare tutti i file e le cartelle in una singola richiesta, ma volevo chiedere qui per verificare che non ho altra opzione.

+0

Si prega di dare alcune informazioni perché avete bisogno di tutti i file. Li usi su qualche applicazione lato server o viene chiamato nel browser? – jmruc

+0

Ho bisogno di importare tutti i file nel repository per visualizzarli sul loro sito web associato. È una raccolta di file di documentazione che vengono aggiornati tramite Git e importati nel sito web. – Scott

+0

Importato come? Perché è necessario utilizzare l'API e non scaricare lo zip, o semplicemente clonare il progetto? – jmruc

risposta

1

È necessario creare singoli GET s per ciascuno di quegli URL forniti dall'API. Dovresti controllare le intestazioni delle risposte che ottieni per i valori "ETag" o "Last-Modified" e utilizzarli per evitare di dover scaricare nuovamente il file ogni volta che il tuo sito web viene interrogato. Supponendo che il contenuto sia cambiato, si salverà anche il limite di ratifica.

Problemi correlati