当 npm 具有 git 依赖项时的 Git 凭据

标签 git jenkins npm

我有一份 Jenkins 工作来构建我的 JS 应用程序。

在我的 package.json我有一个看起来像这样的依赖项:

"devDependencies": {
  "my_private_package": "git+https://my-server/my-repo.git#1.0.0"
}

我使用 Jenkins Git Plugin随着Credentials Plugin克隆 repo,然后运行 ​​shell 脚本 npm install .

当 Jenkins 运行时 npm install , npm npm ERR! fatal: Authentication failed 出错

由于我们自托管的 git 服务器和官僚作风,我无法通过向 git url 添加 oAuth token 做任何事情。

有没有办法让我设置我的 git 凭据,以便 npm 可以从我的受密码保护的 git repo 安装?

最佳答案

您可以使用 credential-helper 向 git 提供 HTTPS 凭据。用文件配置。 file format只是一个带有 user:password 的 HTTPS URL凭据部分已填写。类似于:

CREDENTIALS_FILE_PATH="$HOME/.git/my-ci-credentials"
cat 'https://ci-user:ci-password@myRepoHost.example.com/' > "$CREDENTIALS_FILE_PATH"
因为 npm 在项目文件夹的上下文之外克隆 repo,所以您需要在用户级别而不是项目级别指定此配置:
git config --global credential.helper "store --file=$CREDENTIALS_FILE_PATH"
在此之后,npm 应该能够克隆 repo。

关于当 npm 具有 git 依赖项时的 Git 凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762237/

相关文章:

svn - 无法通过MacPorts安装Git-core+svn

windows - 在 Windows 上通过 Jenkins 使用 chromedriver 和 chrome 捕获屏幕截图时,从渲染器 : 10. 000 接收消息超时

java - Jenkins:config.jelly 中的 validateButton 用于没有描述符的类

elasticsearch - Jenkins Logstash 插件不向 Logstash 发送数据

node.js - 在 Ubuntu 14.04 上安装 Node 5.x 和最新或正在运行的 npm

bash - 为什么 bash(来自 git 安装)突然给我段错误?

git - git的耐心差异算法实现正确吗?

Git rebase 失败

javascript - 是否可以在不执行 npm 安装的情况下只生成一个 package-lock.json 文件?

node.js - 无法在 docker 容器中安装 npm?