我正在做一个内部项目,想在组内分享一个工具。
但如果我使用npm工具。它要么请求模块已经在npm网站上注册,要么请求公共git repo。
我用的是gitlab。并且有一个私有令牌。我试着在package.json中这样写,但是它不起作用。
有没有办法在授权的情况下安装私有的gitlab repo?
非常感谢。
发布于 2017-04-06 16:11:28
如果我理解正确的话,您希望运行npm的CI管道能够从gitlab中提取一个私有项目作为依赖项。
在这种情况下,您可以使用gitlab中的deploy keys机制(请参阅here)。
首先生成SSH密钥对。为此,您可以使用ssh-keygen -t rsa。
然后转到私有存储库的gitlab页面并找到Deploy Keys设置。在这里,您应该粘贴刚刚生成的公钥。
然后转到在其配置项中运行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环境,以便in可以提取您的私有存储库。
https://stackoverflow.com/questions/43248815
复制相似问题