2012-02-14 7 views
5

Ho bisogno di ottenere il contenuto di un file ospitato in un repository GitHub. Preferirei ottenere una risposta JSON con i metadata insieme. Ho provato numerosi URL con cURL per ottenere solo una risposta di {"message":"Not Found"}. Ho solo bisogno della struttura dell'URL. Se è importante, proviene da un'organizzazione su GitHub. Ecco quello che penso dovrebbe funzionare ma non:Come ottenere un file tramite le API GitHub

http://api.github.com/repos/<organization>/<repository>/git/branches/<branch>/<file> 
+1

vedere http://stackoverflow.com/questions/9240961/github-jsonp-source-code-api/9241535#9241535 – nulltoken

+0

Tre richieste per una semplice risposta JSON? Buona legge. Non è affatto intuitivo. Sicuramente c'è un modo più elegante. –

+0

Questo è probabilmente uno dei bit più deboli della loro API. Puoi navigare nella struttura utilizzando la loro API Trees (in Git Data in docs). Per poterlo usare avrai bisogno di un sha. Puoi estrarlo dai rami dei pronti contro termine. Forse è più facile per te utilizzare raw.github.com in questo modo? raw.github.com/:user/:repo/:branch/:filename. Puoi facilmente combinare questi due approcci per capire se esiste qualche file e poi recuperarlo. –

risposta

11

Come la descrizione (che si trova a http://developer.github.com/v3/repos/contents/) dice:

/repos /: proprietario /: repo/contenuti /: percorso

An codice ajax sarà:

$.ajax({ 
    url: readme_uri, 
    dataType: 'jsonp', 
    success: function(results) 
    { 
     var content = results.data.content; 
    }); 

Sostituire il readme_uri dalle corrette/repos /: proprietario /: repo/contenuti /: percorso.

+0

È nuovo? Giuro che non era qui quando ho chiesto. Ho cercato dappertutto le pagine di sviluppo per questo. Grazie. –

+2

Sembra che GitHub stia inviando contenuto di file codificato in Base64 ... – taseenb

+9

@taseenb usa 'https: //raw.githubusercontent.com/: proprietario /: repo/master /: percorso' per ottenere raw (binario, non Base64) –

Problemi correlati