2012-02-14 21 views
5

के माध्यम से फ़ाइल कैसे प्राप्त करें मुझे गिटहब रेपो में होस्ट की गई फ़ाइल की सामग्री प्राप्त करने की आवश्यकता है। मैं इसके साथ मेटाडेटा के साथ एक JSON प्रतिक्रिया प्राप्त करना पसंद करूंगा। मैंने कर्ल के साथ कई यूआरएल की कोशिश की है ताकि केवल {"message":"Not Found"} की प्रतिक्रिया प्राप्त हो सके। मुझे बस यूआरएल संरचना की जरूरत है। यदि यह मायने रखता है, तो यह गिटहब पर एक संगठन से है। कहते हैं वर्णन (http://developer.github.com/v3/repos/contents/ पर स्थित) के रूप मेंगिटहब एपीआई

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

देखें http://stackoverflow.com/questions/9240961/github-jsonp-source-code-api/9241535#9241535 – nulltoken

+0

एक साधारण JSON प्रतिक्रिया के लिए तीन अनुरोध? अच्छा कानून बिल्कुल सहज नहीं है। निश्चित रूप से एक और अधिक सुरुचिपूर्ण तरीका है। –

+0

यह शायद उनके एपीआई की सबसे कमजोर बिट्स में से एक है। आप अपने पेड़ एपीआई (दस्तावेज़ों में गिट डेटा पर) का उपयोग कर संरचना को नेविगेट कर सकते हैं। इसका उपयोग करने के लिए आपको एक शा की आवश्यकता होगी। आप रेपो शाखाओं से बाहर खोद सकते हैं। शायद इस तरह raw.github.com का उपयोग करना आपके लिए आसान है? raw.github.com/:user/:repo/:branch/:filename। यदि आप कुछ फ़ाइल मौजूद हैं और फिर इसे लाने के लिए आप इन दो दृष्टिकोणों को आसानी से जोड़ सकते हैं। –

उत्तर

11

:

/रेपोस /: मालिक /: रेपो/सामग्री /: पथ

एक यहाँ मैं क्या सोचता काम करना चाहिए लेकिन ऐसा नहीं करता है ajax कोड होगा:

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

उचित/रेपोस द्वारा readme_uri बदलें /: मालिक /: रेपो/सामग्री /: पथ।

+0

क्या यह नया है? मैं कसम खाता हूं कि जब मैंने पूछा तो यह यहां नहीं था। मैंने इसके लिए सभी देव पृष्ठों को देखा। धन्यवाद। –

+2

ऐसा लगता है कि गिटहब बेस 64 में एन्कोडेड फ़ाइल सामग्री भेज रहा है ... – taseenb

+9

@taseenb कच्चे (बाइनरी, बेस 64 नहीं) –