Özel Github deposunu npm bağımlılığı olarak kullanma


204

Nasıl bir olarak özel Github repo listelemek yapmak "dependency"in package.json? Npm gibi Github URL'leri sözdizimlerini denedim ryanve/example, ancak npm installpaket klasöründe yapmak özel bağımlılıklar için "yüklenemedi" hataları veriyor. Özel depolara bağlı olarak özel bir sözdizimi (veya başka bir mekanizma) var mı?

Yanıtlar:


286

Bu yoluyla yapılabilir https ve OAuth veya ssh.

https ve oauth: "repo" kapsamına sahip bir erişim belirteci oluşturun ve ardından bu sözdizimini kullanın :

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

veya

ssh: ssh'yi kurun ve ardından bu sözdizimini kullanın:

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

(kullanıcıdan önce eğik çizgi yerine iki nokta üst üste işaretinin kullanımına dikkat edin)


19
Veya "<package>": "git+ssh://git@github.com/<user>/<repo>.git
github'da ssh kurduysanız

3
Her zaman en son sürüme nasıl sahip oluyorsunuz?
Kod Codealot

25
Sonuna #master ekle
Jasmine Hegman

4
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"benim için çalışmadı. Şaşırtıcı bir şekilde jeton ve x-oauth-basic anahtarları bu işi yaptı. Yani, "package-name": "git+https://x-oauth-basic:<github_token>@github.com/<user>/<repo>.git"benim için çalışıyor. github değil gitlab'de olduğumu lütfen unutmayın.
misantronic

2
Aşırı kullanıcı adı olarak httpskoymak x-oauth-basicgerekli değildir: "package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"aynı zamanda çalışır.
kadam

25

Birisi Git Lab için başka bir seçenek arıyor ve yukarıdaki seçenekler çalışmıyorsa, başka bir seçeneğimiz var. Git Lab sunucusunun yerel kurulumu için, aşağıdaki yaklaşımın paket bağımlılığını dahil etmemize izin verdiğini tespit ettik. Bunu yapmak için bir erişim belirteci oluşturduk ve kullandık.

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

Tabii ki, bir kişi bu şekilde bir erişim anahtarı kullanıyorsa, sınırlı bir izin kümesine sahip olmalıdır.

İyi şanslar!


8

Git ile bir https formatı vardır

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

Bu biçim Kullanıcı + şifresini kabul eder

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

Yapabileceğiniz şey, sadece bir bot olarak kullanılacak yeni bir kullanıcı oluşturmak , sadece NPM modüllerine yüklemek istediğiniz depoyu okuyabilecek ve sadece doğrudan packages.json

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

Seç Kapsamları bölümde kontrol repo : Özel havuzlarınızın Tam kontrolünü

Bu, jetonun kullanıcının görebileceği özel depolara erişebilmesi içindir

Şimdi kuruluşunuzda yeni bir grup oluşturun, bu kullanıcıyı gruba ekleyin ve yalnızca bu şekilde çekilmesini beklediğiniz depoları ekleyin (SADECE OKUYUN!)

Bu yapılandırmayı yalnızca özel repo'ya aktardığınızdan emin olmanız gerekir

Daha sonra bunu / Packages.json'ınıza ekleyebilirsiniz (bot-user kullanıcının adı, xxxxxxxxx oluşturulan kişisel jeton)

// 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
Peki, bu kişisel erişim belirtecini koymak ve Travis CI gibi bir şeyde kullanmak güvenli mi?
Con Antonakos

@ConAntonakos eğer proje bir Github özel deposu ise ve özel Github proje deponuzu çalıştıran Travis CI'ya evet ödediyseniz (kimlik bilgilerinizi herkese açık olarak paylaşmadığınız için), hatırlamanız gereken bir şey de oluşturmanız ve kullanmanızdır. bu özel depoya yalnızca okuma erişimi olan yeni Github kullanıcısının kimlik bilgileri. Bu yüzden kişisel hesabınızı kullanmayın :) ... maruz kalma durumunda kilitlenmesi daha kolay bir bot kullanıcı hesabı oluşturun;) ... Bir banka projesi oluşturuyorsanız, bu ISO akreditasyonunu geçmeyecektir, o zaman hayır asla hatta GH kod saklamayın güvenli
equivalent8
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.