将凭证和其他参数获取到 Jenkins 的 ActiveChoice 插件中

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

Active Choices Jenkins 插件 (https://plugins.jenkins.io/uno-choice/) 允许某人编写 groovy 脚本来返回一些动态选项。

我的脚本是这样的:

static String getDockerHubToken(String username, String password) {
  return ...;
}

static List getDockerHubTags(String jwtToken) {
  return ...;
}

def token = getDockerHubToken('myusername', 'mypassword')
def tagNames = getDockerHubTags(token)
return tagNames

(实现遵循Jenkins:Active Choices Parameter + Groovy中的模式来构建基于REST响应的列表

所以问题是:

  • 如何从 Jenkins 凭证将用户名和密码获取到此脚本中(而不是像上面那样将它们硬编码到脚本中)?

谢谢!

jenkins jenkins-plugins jenkins-groovy
1个回答
0
投票

正如MB上面所写,这样做的方法是:

最后,我的代码是:

import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.common.*
import jenkins.model.*

static String getDockerHubToken(String username, String password) {
  return ...;
}

static List getDockerHubTags(String jwtToken) {
  return ...;
}

def instance = jenkins.model.Jenkins.getInstance();
def dockerLogin = CredentialsProvider.lookupCredentials(StandardUsernameCredentials.class, instance, null, null).find {
    it.id == 'my-docker-login-credentials-id'
}
def token = getDockerHubToken(dockerLogin.username, dockerLogin.password.getPlainText())
def tagNames = getDockerHubTags(token)

return tagNames
© www.soinside.com 2019 - 2024. All rights reserved.