プライベートGithubリポジトリをnpm依存関係として使用する方法


203

プライベートGithubリポジトリを"dependency"in としてリストするにはどうすればよいpackage.jsonですか?私が試したNPMのGithubのURLが似た構文ryanve/exampleが、やってnpm installパッケージフォルダには、民間の依存関係のエラーを、「インストールできませんでした」を与えます。プライベートリポジトリに依存するための特別な構文(またはその他のメカニズム)はありますか?

回答:


284

これは、httpsおよびoauth または ssh を介して実行できます。

httpsおよびoauth: 「repo」スコープを持つアクセストークン作成し、次の構文を使用します

"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
:あなたはsshのgithubのに設定している場合は、トークンと利用スキップ "<package>": "git+ssh://git@github.com/<user>/<repo>.git
steveax

3
どのようにして常に最新のリリースに移行しますか?
SIr Codealot

25
最後に#masterを追加します
ジャスミンヘグマン

4
"package-name": "git+https://<github_token>:x-oauth-basic@github.com/<user>/<repo>.git"私にとってはうまくいきませんでした。驚くべきことに、トークンとx-oauth-basicを切り替えることで、この作業が完了しました。だから、"package-name": "git+https://x-oauth-basic:<github_token>@github.com/<user>/<repo>.git"私のために働く。私はgithubではなくgitlabにいることに注意してください。
ミサントロニック2018年

2
以上https入れてx-oauth-basicユーザー名として必要ありません。"package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"同様に動作します。
kadam

25

誰かがGit Labの別のオプションを探していて、上記のオプションが機能しない場合は、別のオプションがあります。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

したがって、ボットとして使用される新しいユーザーを作成し、NPMモジュールにロードしたいリポジトリを読み取り、それを直接 packages.json

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

Select Scopes部分で、on repoを確認します。プライベートリポジトリのフルコントロール

これは、ユーザーが表示できるプライベートリポジトリにトークンがアクセスできるようにするためです。

次に、組織内に新しいグループを作成し、このユーザーをグループに追加して、この方法でプルされると予想されるリポジトリのみを追加します(READ ONLY権限!)

この構成をプライベートリポジトリにのみプッシュする必要があります

次に、これを/ packages.jsonに追加できます(bot-userはユーザーの名前、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
では、この個人用アクセストークンをコミットして、Travis CIなどで使用しても安全ですか?
Con Antonakos

@ConAntonakosプロジェクトがGithubプライベートリポジトリであり、プライベートGithubプロジェクトリポジトリを実行しているTravis CIに支払い済みの場合(はい、一般的には資格情報を公開していないので)また、作成して使用する必要があることを覚えておいてください。このプライベートリポジトリへの読み取りアクセスのみを持つ新しいGithubユーザーの認証情報。個人アカウントは使用しないでください:) ...露出した場合にロックしやすいボットユーザーアカウントを作成します;)...銀行プロジェクトを構築している場合、これはISO認定に合格しないため、決してそうではありませんGHのストアコードすら安全ではない
同等8 8
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.