如何在jenkins管道中获取额外的远程git分支

时间:2016-09-16 13:55:19

标签: git jenkins jenkins-pipeline

我想在jenkins中执行以下操作:

  1. 在branch1中检查/克隆我的git repostiory
  2. 获取branch2(位于branch1之前)
  3. 获取branch1和branch2之间的所有提交用户
  4. 我正在使用管道。

    所以我用以下方式结账:

    git branch: 'branch1', credentialsId: 'XXX', url: 'XXX'
    

    现在,我想再加上'branch2',我试过了:

    sh 'git fetch origin branch2:branch2'
    

    但由于缺少证书而失败。

    那怎么办呢?

1 个答案:

答案 0 :(得分:1)

您可以使用git凭证帮助程序以及凭证插件。 Git凭证doco:https://git-scm.com/docs/gitcredentials 凭据插件:https://jenkins.io/doc/pipeline/steps/credentials-binding/

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'git', usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD']]) {
    try {
        sh("git config credential.username ${env.GIT_USERNAME}")
        sh("git config credential.helper '!f() { echo password=\$GIT_PASSWORD; }; f'")
        sh("GIT_ASKPASS=true git fetch origin branch2:branch2")
    } catch (err) {
        println err
        error "ERROR: Failed to fetch changes"
    } finally {
        sh("git config --unset credential.username")
        sh("git config --unset credential.helper")
    }
}