webentwicklung-frage-antwort-db.com.de

Wie man privates Github-Repo als npm-Abhängigkeit benutzt

Wie liste ich ein privates Github-Repo als "dependency" im package.json? Ich habe versucht npm's Github URLs Syntaxen wie ryanve/example, aber npm install im Paketordner gibt "konnte nicht installieren" Fehler für die privaten Abhängigkeiten. Gibt es eine spezielle Syntax (oder einen anderen Mechanismus) für die Abhängigkeit von privaten Repos?

174
ryanve

Dies kann über https und oauth oder ssh erfolgen.

https und oauth: erstellen Sie ein Zugriffstoken mit "repo" -Bereich und verwenden Sie dann diese Syntax =:

"package-name": "git+https://<github_token>:[email protected]/<user>/<repo>.git"

oder

ssh: setup ssh und benutze dann diese Syntax:

"package-name": "git+ssh://[email protected]:<user>/<repo>.git"

(Beachten Sie die Verwendung von Doppelpunkt anstelle von Schrägstrich vor Benutzer)

247
ryanve

Wenn jemand nach einer anderen Option für Git Lab sucht und die oben genannten Optionen nicht funktionieren, haben wir eine andere Option. Bei einer lokalen Installation des Git Lab-Servers haben wir festgestellt, dass der folgende Ansatz es uns ermöglicht, die Paketabhängigkeit einzuschließen. Wir haben dazu ein Zugriffstoken generiert und verwendet.

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

Wenn Sie einen Zugriffsschlüssel auf diese Weise verwenden, sollten Sie nur über begrenzte Berechtigungen verfügen.

Viel Glück!

21
Steve M

Mit Git gibt es ein https-Format

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

Dieses Format akzeptiert Benutzer + Passwort

https://bot-user:[email protected]/equivalent/we_demand_serverless_Ruby.git

Sie können also einen neuen Benutzer erstellen, der verwendet wird genau wie ein Bot, und nur so viele Berechtigungen hinzufügen, dass er nur das Repository lesen kann, das Sie in NPM-Module laden möchten, und das nur direkt in deinem packages.json

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

Aktivieren Sie im Bereich Select Scopes das Kontrollkästchen on repo: Vollzugriff auf private Repositorys

Auf diese Weise kann der Token auf private Repos zugreifen, die der Benutzer sehen kann

Erstellen Sie nun eine neue Gruppe in Ihrer Organisation, fügen Sie diesen Benutzer der Gruppe hinzu und fügen Sie nur Repositorys hinzu, von denen Sie erwarten, dass sie auf diese Weise abgerufen werden (NUR LESEN-Berechtigung!).

Sie müssen sicherstellen, dass Sie diese Konfiguration pushen nur für private Repo

Dann können Sie dies zu Ihrer/packages.json hinzufügen (bot-user ist der Name des Benutzers, xxxxxxxxx ist das generierte persönliche Token)

// packages.json


{
  // ....
    "name_of_my_lib": "https://bot-user:[email protected]/ghuser/name_of_my_lib.git"
  // ...
}

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

6
equivalent8