【发布时间】:2012-06-04 16:24:07
【问题描述】:
问题很简单:Jenkins 可以使用 ssh://ci_ro@server 访问主 git 存储库(效果很好),但我有 URL 不同的子模块:ssh: //server (没有定义一些用户,这是为了让开发人员可以使用这个 repo 及其子模块)。我绝对不允许(坦率地说不想)提交 CI 特定的 .gitmodule 文件(这会破坏开发人员的存储库),所以请不要提及它。所以 Jenkins 可以提取主仓库,但立即失败:
Caused by: hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1: Cloning into blah/blah...
Host key verification failed.
fatal: The remote end hung up unexpectedly
Clone of 'ssh://server:someport/blah/blah...' into submodule path 'blah/blah' failed
我的问题:是否可以告诉 Jenkins 使用 ssh://ci_ro@server... 子模块的 URL 前缀而不是 .gitmodules 中配置的前缀?或者任何其他可用的解决方法、插件或黑客?我浏览了工作选项,没有找到任何有用的选项。
更新
感谢所有帮助的人。解决方案是允许“jenkins”系统用户使用 git 从特定的 ssh 服务器/端口拉取。
【问题讨论】:
-
如果您的问题已经解决,请answer your own question并接受,以便日后帮助他人。