निजी Github रेपो का उपयोग npm निर्भरता के रूप में कैसे करें


203

मैं एक के रूप में एक निजी Github रेपो सूची कर "dependency"में package.json? मैंने npm के Github URLs सिंटैक्स को पसंद करने की कोशिश की ryanve/example, लेकिन npm installपैकेज फ़ोल्डर में करने से "निजी निर्भरता के लिए" त्रुटि स्थापित नहीं हो सकी। क्या निजी रेपो के आधार पर एक विशेष वाक्यविन्यास (या कुछ अन्य तंत्र) है?

जवाबों:


284

यह https और oauth या ssh के माध्यम से किया जा सकता है ।

https और oauth: एक पहुंच टोकन बनाएं जिसमें "रेपो" गुंजाइश हो और फिर इस सिंटैक्स का उपयोग करें :

"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"

या

ssh: सेटअप ssh और फिर इस सिंटैक्स का उपयोग करें:

"package-name": "git+ssh://git@github.com:<user>/<repo>.git"

(उपयोगकर्ता से पहले स्लैश के बजाय कोलन के उपयोग पर ध्यान दें)


19
या अगर आप "<package>": "git+ssh://git@github.com/<user>/<repo>.git
जीथब में

3
आपके पास यह हमेशा नवीनतम रिलीज पर कैसे होता है?
14:19 बजे एसआईआर कोडेलॉट

25
# मास्टर को अंत में जोड़ें
जैस्मीन हेगमैन

4
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"मेरे लिए काम नहीं किया। आश्चर्यजनक रूप से स्विचिंग टोकन और एक्स-ऑउथ-बेसिक ने काम किया। तो, "package-name": "git+https://x-oauth-basic:<github_token>@github.com/<user>/<repo>.git"मेरे लिए काम करता है। कृपया ध्यान दें कि मैं गिटलैब पर हूं न कि जीथब।
मिससोनिक क्रॉनिक

2
ओवर httpsडाल x-oauth-basicउपयोगकर्ता नाम के रूप आवश्यक नहीं है: "package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"के रूप में अच्छी तरह से काम करता है।
kadam

25

यदि कोई व्यक्ति Git Lab के लिए कोई अन्य विकल्प ढूंढ रहा है और ऊपर दिए गए विकल्प काम नहीं करते हैं, तो हमारे पास एक और विकल्प है। गिट लैब सर्वर की एक स्थानीय स्थापना के लिए, हमने पाया है कि नीचे, दृष्टिकोण, हमें पैकेज निर्भरता को शामिल करने की अनुमति देता है। हमने ऐसा करने के लिए एक पहुंच टोकन बनाया और उपयोग किया।

$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere

बेशक, अगर कोई इस तरह से एक्सेस कुंजी का उपयोग कर रहा है, तो उसके पास अनुमतियों का एक सीमित सेट होना चाहिए।

सौभाग्य!


8

Git के साथ एक https फॉर्मेट है

https://github.com/equivalent/we_demand_serverless_ruby.git

यह प्रारूप उपयोगकर्ता + पासवर्ड स्वीकार करता है

https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/equivalent/we_demand_serverless_ruby.git

तो आप जो कुछ भी कर सकते हैं वह एक नया उपयोगकर्ता बना सकता है जिसका उपयोग सिर्फ बॉट के रूप में किया जाएगा , केवल पर्याप्त अनुमतियाँ जोड़ें जो वह सिर्फ उस रिपॉजिटरी को पढ़ सकते हैं जिसे आप एनपीएम मॉड्यूल में लोड करना चाहते हैं और बस सीधे आपके में है packages.json

 Github > Click on Profile > Settings > Developer settings > Personal access tokens > Generate new token

स्कोप का चयन करें भाग में, रेपो पर जांच करें : निजी रिपॉजिटरी का पूर्ण नियंत्रण

यह इतना है कि टोकन निजी रिपोज को एक्सेस कर सकता है जिसे उपयोगकर्ता देख सकता है

अब अपने संगठन में नया समूह बनाएं, इस उपयोगकर्ता को समूह में जोड़ें और केवल रिपॉजिटरी जोड़ें जो आपको इस तरह से खींचे जाने की उम्मीद है (केवल अनुमति पढ़ें!)

आपको इस कॉन्फ़िगरेशन को केवल निजी रेपो पर धकेलना सुनिश्चित करना होगा

फिर आप इसे अपने / पैकेजों में जोड़ सकते हैं। json (बॉट-यूजर यूजर का नाम है, xxxxxxxxx जनरेट किया गया टोकन है)

// packages.json


{
  // ....
    "name_of_my_lib": "https://bot-user:xxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/ghuser/name_of_my_lib.git"
  // ...
}

https://blog.eq8.eu/til/pull-git-private-repo-from-github-from-npm-modules-or-bundler.html


1
तो, क्या यह व्यक्तिगत एक्सेस टोकन करने के लिए सुरक्षित है, और ट्रैविस सीआई जैसी किसी चीज़ में इसका उपयोग करना है?
कोन एंटोनकोस

@ConAntonakos यदि परियोजना एक गितुब निजी भंडार है और आपने ट्रैविस सीआई को भुगतान किया है जो आपकी निजी गितुब परियोजना रिपॉजिटरी चला रहा है तो हाँ (किंफ, जैसा कि आप सार्वजनिक रूप से अपनी साख नहीं साझा कर रहे हैं। यह भी याद रखने वाली बात है कि आपको बनाने और उपयोग करने की आवश्यकता है नए Github उपयोगकर्ता के क्रेडेंशियल, जिन्होंने केवल इस निजी रेपो तक पहुंच को पढ़ा है। इसलिए अपने व्यक्तिगत खाते का उपयोग न करें :) ... एक बॉट उपयोगकर्ता खाता बनाएं जो एक्सपोज़र के मामले में लॉक करना आसान है;) ... यदि आप एक बैंक परियोजना का निर्माण कर रहे हैं तो यह आईएसओ मान्यता पारित नहीं करेगा, तो यह कभी नहीं है GH पर भी स्टोर कोड सुरक्षित नहीं
बराबर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.