संगठन रिपोजिटरी
अपने संगठन से सभी रिपोज को क्लोन करने के लिए, निम्नलिखित शेल वन-लाइनर का प्रयास करें:
GHORG=company; curl "https://api.github.com/orgs/$GHORG/repos?per_page=1000" | grep -o 'git@[^"]*' | xargs -L1 git clone
उपयोगकर्ता रिपॉजिटरी
Git रिपॉजिटरी URL का उपयोग करके सभी क्लोनिंग:
GHUSER=CHANGEME; curl "https://api.github.com/users/$GHUSER/repos?per_page=1000" | grep -o 'git@[^"]*' | xargs -L1 git clone
क्लोन URL का उपयोग करके सभी क्लोनिंग:
GHUSER=CHANGEME; curl "https://api.github.com/users/$GHUSER/repos?per_page=1000" | grep -w clone_url | grep -o '[^"]\+://.\+.git' | xargs -L1 git clone
यहां उपयोगी शेल फ़ंक्शन है जिसे उपयोगकर्ता की स्टार्टअप फ़ाइलों ( curl
+ का उपयोग करके jq
) में जोड़ा जा सकता है :
# Usage: gh-clone-user (user)
gh-clone-user() {
curl -sL "https://api.github.com/users/$1/repos?per_page=1000" | jq -r '.[]|.clone_url' | xargs -L1 git clone
}
निजी रिपोजिटरी
यदि आपको निजी प्रतिनिधि को क्लोन करने की आवश्यकता है, तो आप अपने शीर्षलेख में प्राधिकरण टोकन जोड़ सकते हैं जैसे:
-H 'Authorization: token <token>'
या इसे परम में पारित करें ( ?access_token=TOKEN
), उदाहरण के लिए:
curl -s "https://api.github.com/users/$GHUSER/repos?access_token=$GITHUB_API_TOKEN&per_page=1000" | grep -w clone_url | grep -o '[^"]\+://.\+.git' | xargs -L1 git clone
टिप्पणियाँ:
- केवल निजी रिपॉजिटरी लाने के लिए,
type=private
अपने क्वेरी स्ट्रिंग में जोड़ें ।
- दूसरा तरीका
hub
अपनी एपीआई कुंजी को कॉन्फ़िगर करने के बाद उपयोग करना है ।
यह सभी देखें:
संकेत :
- गति बढ़ाने के -P
लिए, xargs
( -P4
= 4 प्रक्रियाओं) के लिए पैरामीटर निर्दिष्ट करके समानांतर प्रक्रियाओं की संख्या निर्धारित करें ।
- यदि आपको GitHub सीमा बढ़ाने की आवश्यकता है, तो अपनी API कुंजी निर्दिष्ट करके प्रमाणित करें।
- --recursive
पंजीकृत सबमॉड्यूल्स में पुनरावृत्ति करने के लिए जोड़ें , और किसी भी नेस्टेड सबमॉड्यूल को अपडेट करें।