作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个内部项目,想在小组内分享一个工具。
但如果我使用 npm 工具。它要么要求模块已在 npm 网站或公共(public) git repo 上注册。
我正在使用 gitlab。并且有一个私有(private) token 。
我试着把它放在 package.json 中
git+https://gitlab-ci-token:\<private token>@<domain>/<username>/<repo_name>.git
但它不起作用。
有没有办法通过授权安装私有(private) gitlab 存储库?
多谢。
最佳答案
如果我正确理解了您的问题,您希望运行 npm 的 CI 管道能够从您的 gitlab 中提取一个私有(private)项目作为依赖项。
在这种情况下,您可以使用 gitlab 中的部署 key 机制(参见 here)。
首先生成一个 SSH key 对。您可以使用 ssh-keygen -t rsa
为了那个原因。
然后进入私有(private)仓库的gitlab页面,找到Deploy Keys
环境。您应该在那里粘贴您刚刚生成的公钥。
然后转到在其 CI 中运行 npm 的项目并找到 Variables
页。创建一个名为 SSH_PRIVATE_KEY
的新私有(private)变量例如并粘贴您在那里生成的私钥。
最后,在您的 .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'
关于npm - 如何在 NPM 中使用带有 package.json 的 gitlab 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43248815/
我是一名优秀的程序员,十分优秀!