जो भी कारण के लिए, svn
समाधान मेरे लिए काम नहीं करता है, और चूंकि मुझे svn
किसी और चीज की कोई आवश्यकता नहीं है, इसलिए इसे बनाने की कोशिश में समय बिताने का कोई मतलब नहीं था, इसलिए मैंने उन उपकरणों का उपयोग करके एक सरल समाधान की तलाश की जो मेरे पास पहले से ही थे। यह स्क्रिप्ट केवल curl
और के awk
रूप में वर्णित एक GitHub निर्देशिका में सभी फ़ाइलों को डाउनलोड करने के लिए उपयोग करता है "/:user:repo/contents/:path"
।
GitHub REST API "GET /repos/:user:repo/contents/:path"
कमांड के लिए कॉल का लौटा हुआ बॉडी
एक ऑब्जेक्ट देता है जिसमें "download_url"
डायरेक्टरी में प्रत्येक फ़ाइल के लिए एक लिंक शामिल होता है ।
यह कमांड-लाइन स्क्रिप्ट कॉल करती है जो REST API उपयोग करती है curl
और परिणाम AWK के माध्यम से भेजती है, जो सभी "फिल्टर_ लाइन" को फ़िल्टर करती है, लिंक से उद्धरण चिह्नों और अल्पविरामों को मिटाती है, और फिर कर्ल करने के लिए किसी अन्य कॉल का उपयोग करके लिंक को डाउनलोड करती है।
curl -s https://api.github.com/repos/:user/:repo/contents/:path | awk \
'/download_url/ { gsub("\"|,", "", $2); system("curl -O "$2"); }'