2010-05-10 10 views
11

के साथ जिथब से बात करने के लिए क्रूज़ कंट्रोल प्राप्त करें क्या किसी ने गिट और कंट्रोल कंट्रोल स्थापित किया है और एक विंडो 2003 सर्वर पर गिटहब से खींचने के लिए क्रूज़ कंट्रोल मिला है।सही सार्वजनिक कुंजी

मुझे 'public key errors (access denied)' मिल रहा है - जो मुझे लगता है कि यह अच्छा है कि गिट गिटहब से बात कर रहा है।
हालांकि अच्छा नहीं है कि मुझे नहीं पता कि आरएसए कुंजी कहां स्थापित करें, इसलिए उन्हें चल रहे प्रक्रिया (cc.net के संदर्भ में गिट) द्वारा उठाया जाएगा।

कोई भी मदद मुझे बहुत सारे बाल बचाएगी!

मैंने चाबियाँ इंस्टॉल करने का प्रयास किया है;

c:\Program Files\Git.ssh 

जिससे git bash और cd ~ चल मेरे लिए ले: c:\Program Files\Git

CC.net से

वर्तमान त्रुटि त्रुटि संदेश है:

ThoughtWorks.CruiseControl.Core.CruiseControlException: 
    Source control operation failed: Permission denied (publickey). fatal: 
    The remote end hung up unexpectedly . 
    Process command: C:\Program Files\Git\bin\git.exe fetch origin 

अग्रिम धन्यवाद

उत्तर

2

यह वास्तव में वास्तविक पर निर्भर करता है उपयोगकर्ता ने CruiseControl serv पर घोषित किया नौकरियों को निष्पादित करने के लिए बर्फ।

त्रुटि संदेश को ध्यान में रखते हुए "Permission denied (publickey)" आमतौर पर ssh keys not found in %HOME%/.ssh के कारण होता है।

तो cd ~ आपको एक निर्देशिका में ले जाता है, जो कि क्रूज़ कंट्रोल प्रक्रिया द्वारा उपयोग नहीं किया जा सकता है।

6

क्रूज़ कंट्रोल.net को एक गीथब रिपोजिटरी (विंडोज़ पर) के साथ काम करने के लिए यहां मेरे नोट्स दिए गए हैं। मैं विंडोज 7 पर msysgit 1.7.3.1 चला रहा हूं। मैंने सेवा के रूप में चलाने के लिए सीसीनेट स्थापित किया है।

मैं जिस रणनीति का पालन करता हूं वह एक उपयोगकर्ता खाता बनाता है जो सीसीनेट सेवा का उपयोग करेगा। क्रूज़ कंट्रोल कंसोल चलाने वाले उपयोगकर्ता के रूप में लॉग इन करने के लिए बिल्ड प्राप्त करना प्रारंभ करें। उसके बाद, मैं उस उपयोगकर्ता खाते का उपयोग करके चलाने के लिए सेवा खाता सेट करता हूं।

सबसे पहले, उस उपयोगकर्ता के लिए अपनी एसएसएच कुंजी सेट करें जैसे आप एक और उपयोगकर्ता करेंगे। हालांकि, पासफ्रेज का उपयोग न करें। इससे सीसीनेट को उपयोगकर्ता इनपुट पर प्रतीक्षा करने का समय लगेगा। (github ssh कुंजी प्रबंधन में मदद मिली है, http://help.github.com/msysgit-key-setup/)

आपको उस उपयोगकर्ता में लॉग इन करते समय कहीं भी रेपो क्लोन करने की आवश्यकता होगी। भरोसेमंद मेजबानों की एक सूची रखी जाती है, यह सुनिश्चित करता है कि मेजबान उस सूची में है (मुझे लगता है कि आपकी .ssh कुंजी के साथ)। यदि यह सूची में नहीं है, तो क्रूज़ कंट्रोल टाइमआउट होगा क्योंकि गिट आपके लिए कहने के लिए इंतजार कर रहा है कि आप मेजबान पर भरोसा करते हैं।

उपयोगकर्ता को क्रूज़ नियंत्रण स्थापित करने वाले फ़ोल्डर को पढ़ने/लिखने की अनुमति दें। जो भी बिल्ड फ़ोल्डर्स आप उपयोग करते हैं उन्हें संपादित करने के लिए उपयोगकर्ता अनुमतियां भी दें, आपके निर्माण के लिए जो भी संसाधनों की आवश्यकता हो सकती है।

क्रूज नियंत्रण कॉन्फ़िगरेशन फ़ाइल को गिट स्रोत नियंत्रण ब्लॉक का उपयोग करने की आवश्यकता होगी।
Here उस ब्लॉक पर दस्तावेज़ हैं। यहां एक नमूना है:

<project name="NJasmine"> 

    <sourcecontrol type="git"> 
     <repository>git://github.com/fschwiet/DreamNJasmine.git</repository> 
     <branch>master</branch> 
     <autoGetSource>true</autoGetSource> 
     <executable>$(gitpath)</executable> 
     <tagOnSuccess>false</tagOnSuccess> 
     <commitBuildModifications>false</commitBuildModifications> 
     <commitUntrackedFiles>false</commitUntrackedFiles> 
     <workingDirectory>c:\build\NJasmine.git</workingDirectory> 
     <timeout>60000</timeout> 
    </sourcecontrol> 
    ... 
</project> 

आप मैं gitPath के लिए एक चर का उपयोग नोटिस, कि जिस तरह से मैं केवल एक बार को परिभाषित करेंगे।मेरी मुख्य सीसीनेट कॉन्फ़िगरेशन फ़ाइल वास्तव में उपरोक्त संदर्भित करती है, यह नीचे की तरह कुछ दिखती है। एक बाहरी कॉन्फ़िग फ़ाइल को संदर्भित करके, मैं स्रोत नियंत्रण में मेरी ccnet config के सबसे रख सकते हैं:

<!DOCTYPE cruisecontrol [ 
    <!ENTITY njasmine SYSTEM "file:c:\src\njasmine\ccnet.config.xml"> 
]> 
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <cb:define gitpath="C:\Program Files (x86)\Git\cmd\git.cmd"/> 

    &njasmine; 
</cruisecontrol> 

सूचना मैं Git पथ सेट करने के लिए "C: \ प्रोग्राम फ़ाइलें (x86) \ Git \ cmd \ git.cmd "और नहीं" सी: \ प्रोग्राम फ़ाइलें (x86) \ Git \ bin \ git.exe "। मैं काम करने के लिए bin \ git.exe कभी नहीं मिला। मैंने पाया कि एक साझा भंडार पर केवल-पढ़ने वाले यूआरएल को पढ़ने/लिखने के लिए काम करना आसान है, इसलिए केवल पढ़ने के लिए उपयोग करें।

+0

इसके लिए धन्यवाद। – 0x1mason