2012-10-18 11 views
5

पर प्रमाणीकृत गिट रेपो में खींचकर मैं उसकेोकू पर कुछ प्रमाणीकृत गिट रेपो खींचने की कोशिश कर रहा हूं, और कुछ समस्याएं दबाता हूं।उसकेोकू

आदर्श रूप से, मुझे token solution heregit pull https://<token>@github.com/username/bar.git या यहां तक ​​कि git pull https://username:[email protected]/username/bar.git समाधान का उपयोग करने में सक्षम होना पसंद है यदि टोकन समाधान नहीं है।

हालांकि, यह Git (v1.7.0) के Heroku संस्करण लगता है https प्रमाणीकृत क्लोन के साथ संघर्ष:

$ heroku run bash 
$ git --version 
git version 1.7.0 
$ git clone https://username:[email protected]/username/bar.git 
Initialized empty Git repository in /app/bevry-website/.git/ 
error: The requested URL returned error: 401 while accessing https://username:[email protected]/username/bar.git/info/refs 
fatal: HTTP request failed 

Git (v1.7.12) Heroku उदाहरण पर के एक नए संस्करण स्थापित कर रहा है और कहा कि ठीक काम करता है का उपयोग करते हुए :

$ heroku run bash 
$ curl --silent --location http://git-core.googlecode.com/files/git-1.7.12.tar.gz | tar xz; cd git-1.7.12; make NO_TCLTK=YesPlease NO_PERL=YesPlease NO_GETTEXT=YesPlease NO_SVN_TESTS=YesPlease NO_MSGFMT=YesPlease NO_MSGFMT_EXTENDED_OPTIONS=YesPlease prefix=$HOME install; cd ..; rm -Rf git-1.7.12 
$ ./bin/git --version 
git version 1.7.12 
$ ./bin/git clone https://username:[email protected]/username/bar.git 
works fine :) 

हालांकि, उदाहरण पर हमारे अपने Git संस्करण स्थापित करने नहीं आदर्श के रूप में यह एक बहुत लंबे समय संकलन और स्थापित करने के लिए ले जाता है।

ऐसा लगता है कि उसकाोकू कोई भी मुफ्त समर्थन प्रदान नहीं करता है, जो असहज है क्योंकि मुझे बस उन्हें अपने गिट संस्करण को अपग्रेड करने के लिए बताने की ज़रूरत है और सब कुछ अच्छा है। हालांकि, चूंकि यह संभव नहीं है, क्या किसी को भी उसकेोकू पर प्रमाणित https गिट क्लोन करने के लिए कोई सुझाव है? (मैंने रेपो के साथ एक विशेष .ssh निर्देशिका अपलोड करके प्रमाणीकृत एसएसएच प्राप्त करने में कामयाब रहा है, हालांकि यह हमारी स्थिति के लिए आदर्श नहीं है क्योंकि हम केवल https और टोकन का उपयोग करना पसंद करेंगे)।

उत्तर

4

यदि गिट संस्करण वास्तव में 1.7.0 है, तो यह बहुत पुराना तरीका है, क्योंकि http ट्रांसपोर्ट तंत्र के बाद से कई फिक्स किए गए थे।
(1.11.7 की तरह: हाल Git के साथ स्मार्ट HTTP सर्वर के लिए धक्का है, तो सर्वर, गुमनाम रूप से प्राप्त अनुमति देने के लिए कॉन्फ़िगर किया गया है, जबकि पोस्ट के लिए प्रमाणीकरण की आवश्यकता, प्रमाणीकरण के लिए मजबूर करने के URL में उपयोगकर्ता नाम के बिना विफल रहता है।)

प्लस 1.7.8 क्रेडेंशियल्स कैश करने के लिए एक तरह से प्रस्तुत करता है:

"git push" & "git fetch" में इस्तेमाल किया HTTP लेन-देन के लिए उपयोगकर्ता नाम/पासवर्ड को संभालने के लिए कोड बाहरी प्रोग्राम कैश करने के लिए या दुकान में "क्रेडेंशियल एपीआई" बात करने के लिए सीखा उन्हें प्लेटफॉर्म देशी कीचेन तंत्र के साथ एकीकरण की अनुमति देने के लिए।

आपका ssh वैकल्पिक हल एक ही रास्ता है, Git एक और फिर कंपाइल, लेकिन जब तक Heroku उसके डिफ़ॉल्ट Git उन्नयन, मैं एक और तरीका सुरक्षित रूप से Heroku Git रेपोस के लिए https के साथ प्रमाणित करने नहीं दिख रहा।

$ git clone https://username:[email protected]/username/bar.git 
Initialized empty Git repository in /app/bevry-website/.git/ 
error: The requested URL returned error: 401 while accessing https://username:[email protected]/username/bar.git/info/refs 
fatal: HTTP request failed 

मैं Github के लिए उपयोगकर्ता नाम के रूप ई-मेल का प्रयोग किया:

+0

धन्यवाद :) शायद मैं गिट अपडेट करने के लिए ट्विटर पर कुछ हेरोकू कर्मचारियों को हल कर सकता हूं :) – balupton

2

मैं बस ठीक उसी समस्या थी। यह हेरोकू के गिट (संस्करण 1.7) द्वारा समर्थित नहीं है।

git clone https://username:[email protected]/username/bar.git 

यह वास्तविक काम करता है, यदि आप वास्तविक गीथूब उपयोगकर्ता नाम का उपयोग करते हैं और आपका ई-मेल नहीं करते हैं।

ई-मेल नए गिट संस्करणों के साथ उपयोगकर्ता नाम के रूप में काम करता है।

संबंधित मुद्दे