我正在开展一个内部项目,想在小组内分享一个工具。
但如果我使用 npm 工具。它要么请求模块已在 npm 网站或公共 git 存储库上注册。
我正在使用 gitlab。并且有一个私人令牌。
git+https://gitlab-ci-token:\<private token>@<domain>/<username>/<repo_name>.git
我试图把它像这样放在 package.json 中
但它不起作用。
有没有办法安装具有授权的私人 gitlab 存储库?
多谢。
如果我正确理解你的问题,你希望运行 npm 的 CI 管道能够从 gitlab 中提取私有项目作为依赖项。
在这种情况下,您可以使用 gitlab 中的部署密钥机制(请参阅here https://docs.gitlab.com/ce/ssh/README.html#deploy-keys).
首先生成SSH密钥对。您可以使用ssh-keygen -t rsa
为了那个原因。
然后进入私有仓库的gitlab页面并找到Deploy tokens
设置:设置 > 存储库。您应该将刚刚生成的公钥粘贴到此处。
然后转到其 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 环境,以便可以提取您的私有存储库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)