我有一个项目将EC2实例旋转为构建从属,用户名为“ec2-user”。
我正在检查包含这样的子模块的存储库:
checkout([
$class: 'GitSCM',
branches: [[name: 'deadbeefdeadbeefcafebabe']],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: true,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false]
], submoduleCfg: [],
userRemoteConfigs: [
[credentialsId: 'deadbeef-cafe-babe-cafe-babebeef1234',
refspec: 'refs/changes/12/34567/89',
url: 'ssh://user@host:29418/some/project']
]
])
请注意,该网址包含用户名。
现在,.gitmodules文件如下所示:
[submodule "path/in/project"]
path = path/in/project
url = ssh://host:29418/other/project
branch = somebranch
子模块描述没有指定用户名。当子模块克隆时,克隆将被拒绝,并且凭据无效。手动编辑.gitmodules文件并在URL前面添加user@
可以正常工作,但这是一个不好的解决方法。更改磁盘上的URL然后再次调用checkout也不起作用。
如何让Jenkins使用它在父校验中使用的用户名?如果那是不可能的,那么什么是不涉及更改源代码库的解决方法?