2014-06-28 6 views
10

मैं गिटलैब में अपना निजी रेपो डाउनलोड करने के लिए curl का उपयोग करना चाहता हूं। मुझे पता है कि मैं गिटलैब एपीआई का उपयोग कर सकता हूं, लेकिन किसी कारण से, यह काम नहीं करता है।एक गिटलैब निजी भंडार डाउनलोड करें

क्या यह संभव है? जब मैं इसे इस तरह से करने का प्रयास करता हूं, तो यह हमेशा लॉगिन पेज देता है।

उत्तर

3

आप कर सकते हैं, लेकिन आप अपने आप को प्रमाणित करने के लिए की जरूरत है ("Gitlab API: How to generate the private token" के रूप में)

curl http://gitlab.server/api/v3/session --data 'login=myUser&password=myPass' 
फिर साथ private token

:

:

curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" "http://example.com/api/v3/projects" 

या, आपके मामले में, repository files मिल

GET /projects/:id/repository/files 

या, सीधे एक फ़ाइल डाउनलोड करें।

+0

क्या कोई तरीका है कि मैं डाउनलोड करने योग्य यूआरएल से खींचने वाले कच्चे यूआरएल प्राप्त कर सकता हूं? उदाहरण के लिए, एक छवि फ़ाइल के लिए सार्वजनिक यूआरएल जिसे ब्राउज़र में देखा जा सकता है। क्या एपीआई का उपयोग करके निजी रिपो के लिए मैं सार्वजनिक यूआरएल उत्पन्न कर सकता हूं? –

+0

@ खुर्शीद अलाम का मतलब है कि आप एक सार्वजनिक यूआरएल सबके द्वारा सुलभ हैं, भले ही यह एक निजी रेपो से आता है? – VonC

+0

हां। लेकिन केवल कुछ टोकन के साथ। बस बिटबकेट या जिथब की तरह। उदाहरण के लिए बिटबकेट फ़ाइल के कच्चे यूआरएल से जुड़े टोकन का उपयोग करता है ताकि इसे सार्वजनिक रूप से देखा जा सके। 'Https:? //bytebucket.org/$username/$repo/raw/$sha/$filename.jpg टोकन = $ sometoken' –

12

यह संभव है, बस इन चरणों का पालन करें:

  1. पहले, आप एक "व्यक्तिगत पहुंच टोकन" बनाने के लिए है:

    1. Your Profile > Settings > Access Tokens पर जाएं।
    2. अपने "व्यक्तिगत एक्सेस टोकन" के लिए एक नाम दर्ज करें।
    3. चेक "एपीआई पहुँच प्रमाणीकृत उपयोगकर्ता के एपीआई"

      Personal Access Tokens

    4. पर क्लिक करें "व्यक्तिगत पहुँच टोकन बनाएँ"

    5. पृष्ठ पुनः लोड और अपने नए टोकन बचत होगी।
    6. सुनिश्चित करें कि आप टोकन को कहीं सुरक्षित सुरक्षित रखें, आप इसे फिर से देख पाएंगे।

      New "Personal Access Token"

  2. अब आप अपने "व्यक्तिगत पहुंच टोकन", आप API का उपयोग करने के लिए अपने प्रोजेक्ट आईडी प्राप्त करने की आवश्यकता है कि आप: (साथ https://gitlab.com/api/v3/projects?private_token=XXXXXXXXXXXXXXXXXXXX को

    1. जाओ की जगह Xs आपका नया टोकन)
    2. अपनी परियोजना की आईडी जेसन से प्राप्त करें।

      Project id

  3. अब आप कॉल कर सकते हैं:

    wget -O your_project.tar.gz https://gitlab.com/api/v3/projects/0000000/repository/archive?private_token=XXXXXXXXXXXXXXXXXXXX

और वह एक .tar.gz फ़ाइल के रूप में अपनी परियोजना डाउनलोड करेंगे।

3

आप किसी भी संसाधन तक पहुंचने के लिए निजी टोकन का उपयोग कर सकते हैं ("प्रोफ़ाइल सेटिंग्स" में पाए जाते हैं)। बस, भंडार फ़ाइल डाउनलोड करना चाहते करने के लिए ब्राउज़ करें "कच्चे" फ़ाइल कड़ी को कॉपी करें और संलग्न private_token = ...

उदाहरण:?

curl https://git.local/user1/myrepo/raw/master/myfile.txt?private_token=ahgiretherghaeoi 
0

आप एक सीआई समय में यह करने के लिए की जरूरत है और आपका निजी रेपो एक ही सर्वर पर है, आप एक ही समय में अन्य रिपोज़ क्लोन करने के लिए git submodules का उपयोग करने में सक्षम होना चाहिए। GitLab 8.12 के बाद ${CI_JOB_TOKEN} का उपयोग another option है।

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