7

我有一个蓝海项目,它使用 ssh 键获取 git 项目,我添加了新的 shell 命令,但它没有拉取 .gitsubmodules 文件夹中的子模块:

[submodule "Assets/Engine"]
    path = Assets/Engine
    url = killerbros@vs-ssh.visualstudio.com:22/Game/_ssh/Engine
    branch = "master"
[submodule "Assets/PlatformerModule/Extension"]
    path = Assets/PlatformerModule/Extension
    url = killerbros@vs-ssh.visualstudio.com:22/Game/_ssh/PlatformerModule
    branch = "master"

我尝试为 git submodule init 和 git submodule update 添加 shell 命令,但由于身份验证,它在 gitsubmodule update 上失败:

克隆到 '/Users/Shared/Jenkins/Home/workspace/Platform_master-6J2EI5MV24CJ5OZMBARB5I3D276FBUM4RTXAZNAML5SYUAR7S3YA/Assets/Le'... 权限被拒绝,请重试。权限被拒绝,请重试。myapp@vs-ssh.visualstudio.com:权限被拒绝(密码,公钥)。致命:无法从远程存储库中读取。

我还尝试在 git scm 插件中添加“高级子模块步骤”,但无济于事。

有没有办法确保它对这些更新也使用正确的 ssh 密钥?

4

1 回答 1

5

有没有办法确保它对这些更新也使用正确的 ssh 密钥?

是的,使用JENKINS SSH Credentials Plugin,您可以复制该插件中的私钥,并将关联的凭据用于 Git repo 作业设置,这将使用所述私钥进行任何 ssh 调用。这假设Jenkins Git 客户端
的最新版本(2016 年)。 如此处所示,您可以在高级子模块行为设置中使用来自父存储库默认远程的凭据。

于 2018-02-10T11:39:50.550 回答