git - 为什么 Jenkins 收到 git submodule update 的 Authentication Failed 错误?

标签 git jenkins bitbucket git-submodules

我有一个 Jenkins 工作,它从一个运行良好的 BitBucket 存储库中提取,现在仍然是。但是,我添加了一个子模块,而 Jenkins 对此感到窒息。这是 Jenkins 控制台输出的一个片段:

FATAL: Command "C:\Program Files (x86)\Git\cmd\git.exe submodule update" returned status code 1: stdout: Cloning into 'submodules/my.repo'...

stderr: fatal: Authentication failed

我正在使用一个 ssh key ,我将其添加到 BitBucket 中主要存储库的部署 key 中。这总是奏效的。我将相同的 key 添加到我的子模块存储库的部署 key 中。谁能告诉我身份验证失败的原因?

最佳答案

3.0.0 之前的 Jenkins git 插件版本不支持子模块身份验证。 Jenkins git 插件现在支持使用与父存储库相同的凭证和协议(protocol)的子模块身份验证。 2016 年 9 月 10 日发布的 Jenkins git 插件 3.0.0 添加了支持。

作业定义页面的子模块配置部分(“附加行为”>“高级子模块行为”)包括一个复选框“使用父存储库的默认远程凭证”。选中该框,父存储库中的凭据将用于子模块。

注意:存储库克隆协议(protocol)对于父存储库和所有子模块必须相同(ssh 或 https),否则父凭据不能与子模块存储库一起使用。

关于git - 为什么 Jenkins 收到 git submodule update 的 Authentication Failed 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17100032/

相关文章:

git - 无法将提交推送到 fork 的 repo

git 撤消所有未提交或未保存的更改

jenkins - Jenkins构建日志文件如何编码?

java - 如何在 Jenkins 中配置 Java 的 Checkstyle 配置

git - Bitbucket 存储库从昨天开始返回 "remote: Too many invalid password attempts. Try logging in through the website."(403)

git - 是否有 git gui 工具来检查和提交 cloud9 编辑器中的更改?

文件名中的 CSS 版本?

svn - 如果只有 SCM 注释匹配模式,则运行 jenkins 作业

git - 从 Bitbucket 推送标签时不会触发 Azure Pipelines CI

mercurial - 如何从 Mercurial 存储库中完全删除某些内容?