如何在NPM中使用gitlab repo和package.json

时间:2017-04-06 07:44:28

标签: npm gitlab package.json

我正在开发一个内部项目,并希望在该组内共享工具。

但如果我使用npm工具。它要么是要求模块在npm网站上注册,要么是公共git repo。

我正在使用gitlab。并且有一个私人令牌。 git+https://gitlab-ci-token:\<private token>@<domain>/<username>/<repo_name>.git 我试着把它放在package.json中 但它不起作用。

有没有办法用授权安装私有gitlab仓库?

非常感谢。

1 个答案:

答案 0 :(得分:8)

如果我正确理解您的问题,您希望运行npm的CI管道能够从您的gitlab中提取私有项目作为依赖项。

在这种情况下,您可以在gitlab中使用部署密钥机制(参见here)。

首先生成SSH密钥对。您可以使用ssh-keygen -t rsa

然后转到私人存储库的gitlab页面并找到Deploy Keys设置。你应该粘贴你刚刚生成的公钥。

然后转到在其CI中运行npm的项目并找到Variables页面。例如,创建一个名为SSH_PRIVATE_KEY的新私有变量,并粘贴您在那里生成的私钥。

最后,在您的.gitlab-ci.yml文件中添加以下内容,以便您的私钥可供CI环境使用:

- '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环境,以便可以拉出您的私人存储库。