2013-02-18 13 views
5

Ich habe eine Knotenanwendung auf Github in einem privaten Repository. Diese Knotenanwendung verfügt auch über benutzerdefinierte Module, die ich erstellt habe, und sie befinden sich in einem separaten privaten Repository.Mehrere github private npm-Repositorys auf einem Server

Dies ist das Beispiel Knoten-Anwendung url:

[email protected]:thomas/node-application.git 

Diese sind beide Knotenmodule, die Knoten-Anwendung verwendet.

[email protected]:thomas/node-module1.git 
[email protected]:thomas/node-module2.git 

Sie können Folgendes verwenden, um ein privates NPM-Modul auf Github zu installieren.

npm install git+ssh://[email protected]:thomas/node_module1.git 

Damit dies funktioniert, muss die Maschine SSH-Schlüssel eingerichtet haben.

Mein lokaler Rechner hat meine github Benutzerschlüssel eingerichtet und Zugriff auf alle meine Repos.

Auf meinem Server verwende ich jedoch Deploy Keys. Der einzige Weg, wie ich mehrere Deployment-Schlüssel verwenden kann, ist wie folgt.

Host na.github.com 
HostName github.com 
User git 
IdentityFile ~/.ssh/gh_node-application 
ForwardAgent yes 

Host nm1.github.com 
HostName github.com 
User git 
IdentityFile ~/.ssh/gh_node-module1 
ForwardAgent yes 

Host nm2.github.com 
HostName github.com 
User git 
IdentityFile ~/.ssh/gh_node-module2 
ForwardAgent yes 

Also würde ich brauchen, um die Module auf dem Server mit

npm install git+ssh://[email protected]:thomas/node_module1.git 
          ^^^ 

installieren Was bedeutet, dass die Produktion und Entwicklung Abhängigkeiten anders wäre

"node-module": "git+ssh://[email protected]:thomas/node-module1.git" 

vs

"node-module": "git+ssh://[email protected]:thomas/node-module1.git" 
           ^^^ 

Dies könnte funktionieren, wenn ich so etwas tun könnte ...

Host github.com 
HostName github.com 
User git 
IdentityFile ~/.ssh/gh_node-application 
IdentityFile ~/.ssh/gh_node-module1 
IdentityFile ~/.ssh/gh_node-module2 
ForwardAgent yes 
+0

ging ich die Strecke von [Maschinen Benutzer] (https://help.github.com/articles/managing-deploy-keys). Was ich wirklich hasse XD – ThomasReggi

+0

Haben Sie versucht, Ihre Bereitstellungsschlüssel zu Ihrem GitHub-Account hinzuzufügen? Mit allen zu Ihrem Konto hinzugefügten Schlüsseln können Sie auf Ihre privaten Pakete zugreifen. Diese Lösung ist nur wirksam, wenn nicht zu viele Schlüssel vorhanden sind und sie sich nicht zu häufig ändern. – vmx

Antwort

Verwandte Themen