プライベートGithubリポジトリを"dependency"
in としてリストするにはどうすればよいpackage.json
ですか?私が試したNPMのGithubのURLが似た構文ryanve/example
が、やってnpm install
パッケージフォルダには、民間の依存関係のエラーを、「インストールできませんでした」を与えます。プライベートリポジトリに依存するための特別な構文(またはその他のメカニズム)はありますか?
プライベートGithubリポジトリを"dependency"
in としてリストするにはどうすればよいpackage.json
ですか?私が試したNPMのGithubのURLが似た構文ryanve/example
が、やってnpm install
パッケージフォルダには、民間の依存関係のエラーを、「インストールできませんでした」を与えます。プライベートリポジトリに依存するための特別な構文(またはその他のメカニズム)はありますか?
回答:
これは、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"
(ユーザーの前にスラッシュの代わりにコロンを使用することに注意してください)
"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にいることに注意してください。
https
入れてx-oauth-basic
ユーザー名として必要ありません。"package-name": "git+https://<github_token>@github.com/<user>/<repo>.git"
同様に動作します。
誰かがGit Labの別のオプションを探していて、上記のオプションが機能しない場合は、別のオプションがあります。Git Labサーバーのローカルインストールの場合、以下の方法でパッケージの依存関係を含めることができることがわかりました。そのために、アクセストークンを生成して使用します。
$ npm install --save-dev https://git.yourdomain.com/userOrGroup/gitLabProjectName/repository/archive.tar.gz?private_token=InsertYourAccessTokenHere
もちろん、この方法でアクセスキーを使用している場合は、アクセス権のセットが制限されているはずです。
幸運を!
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
"<package>": "git+ssh://git@github.com/<user>/<repo>.git