2013-05-13 3 views
6

के साथ शाखा नाम \ आईडी द्वारा गिट काम करता है मैं गिट हब भंडारों के साथ काम करने के लिए स्वचालित सेवा पर काम कर रहा हूं। और मुझे अपनी तरफ से समस्या हो रही है - मुझे विशेष शाखा में अपने हैश नाम से सभी प्रतिबद्धताओं को प्राप्त करने का कोई तरीका नहीं मिल रहा है।गिट एपीआई

मेरा कोड कोड समीक्षा करने के लिए एक स्वचालित उपकरण है। इसलिए मैंने अपनी समीक्षा प्रक्रिया में विशेष शाखा को अनदेखा करने के लिए एक सुविधा जोड़ा है (उदा। एक परीक्षण शाखा या ऐसा कुछ)। तो मेरी सेवा में मैं शाखा को अनदेखा कर रहा हूं। एक बार जब मैं गिट हब एपीआई से काम करता हूं - वहां कोई जानकारी नहीं है कि कौन सी शाखा वर्तमान प्रतिबद्ध है। के बाद से प्रतिबद्ध शाखा लिंक बहुत स्पष्ट बात तो वहाँ कुछ है कि API डेवलपर को कि GetCommits विधि

तो मेरे सवाल है में अनदेखी करने के लिए किया जाना चाहिए है -

मैं यह सोच कर कि मेरी कुल GitHub विचार गलत है शुरू कर दिया - क्या यह जानने का कोई तरीका है कि कौन सी शाखा प्रतिबद्ध है (v3 api json परिणाम का उपयोग करके) github api (v3 - GET/repos /: owner /: repo/commits/sha) में संबंधित है।

धन्यवाद

+2

आप गिटहब से कैसे काम कर रहे हैं? क्या आप रिपोजिटरी हुक (http://developer.github.com/v3/repos/hooks/) का उपयोग कर रहे हैं या आप मैन्युअल रूप से काम कर रहे हैं (http://developer.github.com/v3/repos/commits/)? यदि आप हुक का उपयोग कर रहे हैं, तो आपको सूचित किया जाएगा कि कौन सी शाखा को धक्का दिया गया था - http://developer.github.com/v3/activity/events/types/#pushevent। –

+0

मैं वास्तव में दोनों का उपयोग कर रहा हूं। पहला व्यक्ति मुझे सूचित करता है कि एक प्रतिबद्धता जोड़ा गया था और फिर मैं अपना डेटा प्राप्त करने के लिए दूसरा उपयोग करता हूं। लेकिन वैसे भी धन्यवाद - मैं उस जानकारी का उपयोग करने की कोशिश करूंगा। – chaZm

+0

मुझे शाखा में सभी काम करने की आवश्यकता होगी - धक्का में आखिरी नहीं। इसलिए मुझे शाखा द्वारा सभी प्रतिबद्धताओं को प्राप्त करने या सभी टिप्पणियों की सूची में शाखा खोजने के लिए एक तरीका चाहिए – chaZm

उत्तर

5

तुम सिर्फ अगर आपके प्रतिबद्ध शाखा test123 पर उदाहरण के लिए जाँच करने के लिए चाहते हैं, करते हैं:

https://api.github.com/repos/golang/go/compare/test123...001a75a74c4a27901b0b536efe1be581612c52a9

और स्थिति की जांच।

यदि यह 'समान' या 'पीछे' है, तो प्रतिबद्धता शाखा का हिस्सा है। यदि यह अलग है, तो यह नहीं है।

+0

यह सही उत्तर है। – nathancahill

9

वर्तमान में GitHub के एपीआई में कोई रास्ता नहीं है, तो एक के लिए प्रतिबद्ध एक विशिष्ट शाखा के इतिहास में है पूछने के लिए नहीं है। एकमात्र चीज जो आप कर सकते हैं वह सभी शाखाओं को एक विशिष्ट शाखा के लिए लाती है, और फिर यह देखने के लिए प्रतिबद्ध होती है कि सूची में कोई विशिष्ट प्रतिबद्धता है या नहीं। ऐसा करने के लिए, /repos/:owner/:repo/commits?sha=branchname पर अनुरोध करें, जहां ब्रैनchnम उस शाखा का नाम है जिसे आप लाने के लिए चाहते हैं उदा। https://api.github.com/repos/izuzak/pmrpc/commits?sha=master

+2

मैं दृढ़ता से भी दृढ़ता से सलाह देते हैं कि @chaZm उन लिस्टिंग पर ईटीएजी जानकारी संग्रहीत करता है ताकि वे अगले पास केवल उन कामों को प्राप्त कर सकें जिन्हें वे पहले से नहीं देख चुके हैं (माना जाता है कि वे पहले से ही पुरानी जानकारी संग्रहीत कर रहे हैं)। –