我有一个 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/