Jenkins管道子模块认证

问题描述 投票:11回答:1

我有一个包含子模块的存储库。这些是在可公开访问的GitHub存储库中开发的。但是,我的最终部署是在一个断开连接的环境中,在GitLab中具有镜像的GitHub存储库,所有这些都需要身份验证。

我的.gitmodules文件包含可公开使用的存储库的URL。我在工作中做了一些sed替换,可以正确更新它们,但是不幸的是,我然后无法进行身份验证,因为它是与git url:....步骤分开的操作。

我可以使用以下方法克隆项目:

git url: "[email protected]", branch: "master", credentialsId: "somecredentialid"

不幸的是,这不会更新我的子模块。而且由于我需要身​​份验证。

我也可以使用checkout进行克隆:

      checkout([                                                            
        $class: 'GitSCM',                                                   
        branches: [[name: 'master']],                               
        doGenerateSubmoduleConfigurations: true,                            
        extensions: [[$class: 'SubmoduleOption',                            
          disableSubmodules: false,                                         
          parentCredentials: true,                                          
          recursiveSubmodules: true,                                        
          reference: '', trackingSubmodules: true]],                        
          submoduleCfg: [],                                                 
          userRemoteConfigs: [[credentialsId: 'somecredentialid',         
          url: '[email protected]']]                                            
      ])                                                                    
    }                                                                       
  }

documentation不清楚doGenerateSubmoduleConfigurations: true,submoduleCfg:是什么。

[我觉得checkout方法可能是解决方案,但是我不知道如何更新.gitmodules以反映子模块的安全URL。

git jenkins
1个回答
0
投票

在我的情况下,这对我有用,类似于您在此处所做的;看看是否有帮助。

checkout changelog: true, poll: true, scm: [
        $class: 'GitSCM',
        branches: [[name: "master"]],
        doGenerateSubmoduleConfigurations: false,
        extensions: [[$class: 'SubmoduleOption', recursiveSubmodules: true, parentCredentials: true], [$class: 'PruneStaleBranch']],
        submoduleCfg: [],
        userRemoteConfigs: [[name: 'origin', url: "Git ssh URL/${projectName}.git", credentialsId: 'Git credential']]
]
© www.soinside.com 2019 - 2024. All rights reserved.