如何在Jenkins Groovy脚本中使用凭据以编程方式调用Git?

如何在Jenkins Groovy脚本中使用凭据以编程方式调用Git?,git,jenkins,groovy,jenkins-plugins,Git,Jenkins,Groovy,Jenkins Plugins,我的任务与此处描述的任务类似: 基本上,我想从Jenkins Groovy脚本中的远程存储库获取标记 但问题是,我的存储库需要访问它们的凭据—SSH密钥,它们存储在Jenkins的凭据存储中 使用凭据插件,您可以将凭据作为环境变量注入到作业中。在Jenkins job DSL插件中,它被称为凭据绑定。您可以将凭据存储在两个单独的变量中。使用凭据插件,您可以将凭据作为环境变量注入到作业中。在Jenkins job DSL插件中,它被称为凭据绑定。您可以将凭据存储在两个单独的变量中。根据凭据的类型

我的任务与此处描述的任务类似:

基本上,我想从Jenkins Groovy脚本中的远程存储库获取标记


但问题是,我的存储库需要访问它们的凭据—SSH密钥,它们存储在Jenkins的凭据存储中

使用凭据插件,您可以将凭据作为环境变量注入到作业中。在Jenkins job DSL插件中,它被称为凭据绑定。您可以将凭据存储在两个单独的变量中。

使用凭据插件,您可以将凭据作为环境变量注入到作业中。在Jenkins job DSL插件中,它被称为凭据绑定。您可以将凭据存储在两个单独的变量中。

根据凭据的类型,下面是一个groovy脚本,用于获取凭据存储的用户名和密码,可用于:

然后连接到git并获取标记,例如:

def command = [ "/bin/bash", "-c", "git ls-remote --tags https://$username:$password@yourgit.domain/path/repo.git | awk '{print \$2}' | sort -r -V | sed 's@refs/tags/@@'" ]
def process = command.execute();
process.waitFor()

def result = process.text.tokenize("\n")
我想用带有-key参数和ssh var的ssh密钥来尝试这一点,但它不起作用,但我偶然发现:


检查一下,它可能会为您提供无需脚本编写的所需内容。

根据凭据的类型,下面是一个groovy脚本,用于获取凭据存储的用户名和密码,可用于:

然后连接到git并获取标记,例如:

def command = [ "/bin/bash", "-c", "git ls-remote --tags https://$username:$password@yourgit.domain/path/repo.git | awk '{print \$2}' | sort -r -V | sed 's@refs/tags/@@'" ]
def process = command.execute();
process.waitFor()

def result = process.text.tokenize("\n")
我想用带有-key参数和ssh var的ssh密钥来尝试这一点,但它不起作用,但我偶然发现:

看看吧,它可能不需要脚本就可以满足您的需要