2013-10-25 12 views
17

का उपयोग करके गिटलैब में एक रेपो बना रहा है हमारे पास हमारे कार्यालय में gitlab सेटअप है, और हमारे पास हर हफ्ते लगभग 100-150 प्रोजेक्ट है जो वहां बनाने के लिए है, जबकि व्यवस्थापक रेपो बनाने और टीमों को असाइन करने का नियंत्रण रखना चाहता है , हर किसी के लिए हर हफ्ते कई रिपो बनाने के लिए यह काफी काम लगता है।सीएलआई

वहाँ create repo on Gitlab using CLI का कोई तरीका है - मैं इसके लिए ssh उपयोग करने के लिए है, तो मुझे कोई आपत्ति नहीं होगी।

उत्तर

2

आप gitlab-cli का उपयोग कर सकते हैं और एक खोल स्क्रिप्ट का उपयोग कर प्रक्रिया स्वचालित कर सकते हैं। मैं gitlab 5.x में इस का उपयोग किया है, लेकिन साइट के अनुसार यह gitlab साथ काम नहीं कर सकते 6.

+0

gitlab-CLI अब सक्रिय रूप से बनाए रखा है बनाने के लिए - लेखक का नोट दिखाई: "यह GitLab 6.x + इस परियोजना नहीं रह गया है बनाए रखा है के साथ काम नहीं कर सकते हैं।। एक पूर्ण-कार्यात्मक, बनाए रखा सीएलआई उपकरण http://narkoz.github.io/gitlab/ " –

15

gitlab-cli अब बनाए रखा नहीं, लेखक Gitlab मॉड्यूल का संदर्भ है बजाय प्रयोग की जाने वाली है - यह भी एक CLI शामिल उपकरण।

अपने विशेष अनुरोध के लिए - अर्थात् कमांड लाइन पर एक परियोजना का निर्माण, निम्न आदेश का उपयोग:

gitlab create_project "YOUR_PROJECT_NAME" "{namespace_id: 'YOUR_NUMERIC_GROUP_ID'}"

विकल्प namespace_id और नहीं group_id का उपयोग सुनिश्चित करें! क्या आप वाकई क्या आपके GROUP_ID है नहीं कर रहे हैं, तो आप

gitlab groups | grep YOUR_GROUP_NAME

का उपयोग पता लगाने के लिए कर सकते हैं।

प्रत्येक कमांड के पैरामीटर API documentation से अनुमानित किए जा सकते हैं। किसी भी गैर-स्केलर मूल्यवान पैरामीटर को इनलाइन वाईएएमएल सिंटैक्स (ऊपर के रूप में) में एन्कोड किया जाना चाहिए।

+0

पर एक सार्वजनिक रेपो बनाने के लिए, आपको नेमस्पेस_आईड की आवश्यकता नहीं है, लेकिन दृश्यता_लेवल इस 'gitlab create_project" की तरह है {visibility_level: 10 } "$ GIT_REPO_NAME'। – MoOx

9

चूंकि आप सिर्फ रेपो बनाना चाहते थे, तीसरे पक्ष के ऐप्स की कोई आवश्यकता नहीं है। आप सीधे gitlab को एक पोस्ट अनुरोध भेज सकते हैं जो रेपो बनायेगा।

अपनी प्रोफ़ाइल में account tab पर जाएं, आपको एक निजी टोकन मिलेगा। उस की नकल करें।

अब टर्मिनल खोलें और निजी टोकन के साथ इस आदेश को चलाएं (foo कहें) और अपने रेपो नाम (bar कहें)।

curl -H "Content-Type:application/json" https://gitlab.com/api/v3/projects?private_token=foo -d "{ \"name\": \"bar\" }" 

सुविधा के लिए, यदि आप एक खोल स्क्रिप्ट बनाने के लिए यदि आप इस आदेश को हर बार चलाने के लिए नहीं करना चाहते हैं कर सकते हैं।

#!/bin/sh 

curl -H "Content-Type:application/json" https://gitlab.com/api/v3/projects?private_token=foo -d "{ \"name\": \"$1\" }" 
यह एक फ़ाइल gcr.sh करने के लिए

सहेजें और यह chmod +x gcr.sh का उपयोग कर निष्पादन योग्य बनाते हैं।

अब एक रेपो नाम bar, चलाने

$ ./gcr.sh bar 
+0

क्या इस काम को गिटलैब के डिफ़ॉल्ट http पर बनाने का कोई तरीका है? – Gerrat

+0

@Gerrat मुझे केवल एक चीज है जो 422 HTTP-error है। –