मैं अपने सभी रेपो को एक बार में अपने कंप्यूटर पर क्लोन करने की कोशिश कर रहा हूं, जो सभी निजी हैं। मैंने अनगिनत वन-लाइनर्स और स्क्रिप्ट की कोशिश की है (अर्थात्, यहां और यहां), लेकिन उनमें से कोई भी काम नहीं करता है।

प्रारंभ में मुझे जेएसओएन के बारे में त्रुटियों को वापस मिल जाएगा, जो प्रतिक्रिया को पार्स करने में सक्षम नहीं था, जिसे अंततः मुझे एहसास हुआ क्योंकि प्रतिक्रिया खाली थी क्योंकि मेरे पास कोई सार्वजनिक रेपो नहीं था। जब मैंने एक परीक्षण सार्वजनिक रेपो बनाया, तो यह उस विशिष्ट रेपो की जानकारी के साथ एक JSON ऑब्जेक्ट लौटाएगा, लेकिन निजी में से कोई भी नहीं। जो मैं समझता हूं, उससे मुझे अपना उपयोगकर्ता नाम और एक एक्सेस टोकन दोनों को गिटहब में पास करने की आवश्यकता है, जिसमें एक्सेस टोकन Settings > Developer settings > Personal access tokens पर उत्पन्न हुआ था।

मैंने बिना किसी लाभ के निम्नलिखित दोनों प्रारूपों की कोशिश की है:

curl -i -u [[USERNAME]]:[[TOKEN]] -s https://api.github.com/users/[[USERNAME]]/repos?per_page=100 [[...]]

curl -i -u [[USERNAME]] -s https://api.github.com/users/[[USERNAME]]/repos?per_page=100&access_token=[[TOKEN]] [[...]]

इसके बाद आने वाला [[...]] भाग विभिन्न कोड स्निपेट है जैसे ऊपर दिए गए लिंक में दिया गया है। मेरा मानना ​​​​है कि ये हिस्से ठीक हैं, क्योंकि वे बिना किसी समस्या के सार्वजनिक रेपो को क्लोन करते हैं, और इसके बजाय यह मुद्दा मुझमें निहित है कि मैं एक एक्सेस टोकन होने के बावजूद अपने निजी रेपो को नहीं देख पा रहा हूं। यह ध्यान रखना महत्वपूर्ण है कि जब आप एक्सेस टोकन जेनरेट करते हैं, तो आप इसके लिए स्कोप को परिभाषित करते हैं कि यह क्या कर सकता है, और मैंने repo सहित हर चीज तक पूर्ण पहुंच के साथ मेरा परिभाषित किया है, जो इसे निजी रेपो पर नियंत्रण प्रदान करना चाहिए। .

इसके अतिरिक्त, कभी-कभी जब मैं उपरोक्त आदेश का प्रयास करता हूं, तो मुझे निम्न प्रतिक्रिया मिलती है:

 HTTP/1.1 401 Unauthorized
Server: GitHub.com
Date: Fri, 13 Oct 2017 08:08:01 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 93
Status: 401 Unauthorized
X-GitHub-Media-Type: github.v3; format=json
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 41
X-RateLimit-Reset: 1507884238
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src 'none'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Runtime-rack: 0.060685
X-GitHub-Request-Id: D038:4E67:1349CC:2CB494:59E07461

{
  "message": "Bad credentials",
  "documentation_url": "https://developer.github.com/v3"
}

यह जानने के बावजूद कि मेरी साख ठीक है।

क्या किसी को पता है कि मेरे लिए क्या गलत हो रहा है? मैं इसके चारों ओर घंटों से चक्कर लगा रहा हूं और खाली आया हूं।

1
user5095320 13 अक्टूबर 2017, 11:30

1 उत्तर

कुछ इस तरह का प्रयास करें (यह केवल ssh_url प्राप्त करने के लिए jq का उपयोग करता है ताकि आप रेपो का क्लोन बना सकें) :

GITHUB="https://api.github.com/user/repos?per_page=100&type=owner"
for repo in $(curl -s -u user:token ${GITHUB} | jq -r '.[] | .ssh_url')
do
   git clone --mirror ${repo}
done

कर्ल का उपयोग करते समय आपको टोकन पास करना होगा जैसे कि यह पासवर्ड था (मूल प्रमाणीकरण) :

curl -u user:token

GitHub पेज पर "Other Authentication Method" चेक करें।

1
nbari 13 अक्टूबर 2017, 11:58