2017-04-06 7 views
4

私は内部プロジェクトを進めており、グループ内のツールを共有したいと考えています。NPMでpackage.jsonを使ってgitlab repoを使う方法

ただし、npmツールを使用している場合。それはモジュールがnpmウェブサイトまたは公的なgit repoに登録されていることを要求します。

私はgitlabを使用しています。プライベートトークンがあります。 git+https://gitlab-ci-token:\<private token>@<domain>/<username>/<repo_name>.git 私はこれをpackage.json に入れようとしましたが、機能しません。

許可を得てプライベートgitlabリポジトリをインストールする方法はありますか?

ありがとうございます。

+0

非常に関連しています(2番目の回答を確認してください):http://stackoverflow.com/q/28728665/1233251 –

+0

@ E_net4はい。私もその投稿を参照してください。しかし、それはgithubを使用しています。私は両方を試みた。 gitlabはgithubと同じ方法を使用していないようです。 –

+0

http://stackoverflow.com/a/43774869/2179157 –

答えて

9

私があなたの質問を正しく理解している場合、依存関係としてgitlabからプライベートプロジェクトをプルできるようにnpmを実行するCIパイプラインが必要です。

その場合、gitlabのdeploy keysメカニズムを使用することができます(hereを参照)。

最初にSSH鍵ペアを生成します。これにはssh-keygen -t rsaを使用できます。

プライベートレポジトリのgitlabページに移動し、Deploy Keysの設定を探します。ここでは、生成したばかりの公開鍵を貼り付ける必要があります。

次に、CIでnpmを実行するプロジェクトに行き、Variablesページを探します。たとえば、名前がSSH_PRIVATE_KEYの新しいプライベート変数を作成し、そこに生成した秘密鍵を貼り付けます。秘密鍵は、あなたのCI環境に使用できるように

最後に、あなたの.gitlab-ci.ymlファイルに次の行を追加します。その中には、自分のプライベートリポジトリを引っ張ることができるように

- 'which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)' 
# Run ssh-agent (inside the build environment) 
- eval $(ssh-agent -s) 
# Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store 
- ssh-add <(echo "$SSH_PRIVATE_KEY") 
- mkdir -p ~/.ssh 
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' 

あなたのCI環境は今、セットアップする必要があります。

+0

お返事ありがとうございます。 しかし、私が本当に尋ねたいことは何ですか。 私はpackage.jsonファイルを持つプロジェクトを持っています。 私は正しいスキーマやURLを使ってプライベートgitlabリポジトリを使って依存関係を設定する方法 –

+0

私の答えに書かれていることをすれば、あなたのprivateリポジトリをpackage.jsonに 'git + ssh:// git @// .git " – Jawad

+0

@ Jawad Gitlab CIパイプラインではどのユーザー名を使用する必要がありますか? – 7hibault

関連する問題