我想使用api jenkins检索我的选择参数中的选择列表
我尝试:
但我得到的只是价值
“名称”:“上下文”, “ value”:“ foo”
我将输出:
“名称”:“上下文”, “ value”:“ foo,foo,...”
有可能吗?
答案 0 :(得分:0)
请务必查看文档以获取给定job
的构建参数
https://javadoc.jenkins-ci.org/hudson/model/ParametersDefinitionProperty.html
如果您已经引用了特定的Jenkins职位,则可以按照以下示例进行操作
def paramsProp = job.getProperty(ParametersDefinitionProperty.class)
if ( paramsProp ) {
// Single out specific build param
myBuildParam = paramsProp.getParameterDefinition( 'MY_BUILD_PARAM' )
println 'Default value for ' + myBuildParam.getDisplayName() + ': ' + myBuildParam.getDefaultParameterValue().value
println 'Param Type ' + myBuildParam.getClass()
// Get all build params
myBuildParams = paramsProp.getParameterDefinitions()
// ... GET VALUES ETC
}
您可以从build参数中检索的特定项目将取决于该参数类型是什么。您需要为每个查询API,例如ChoiceParameter
https://javadoc.jenkins.io/hudson/model/ChoiceParameterDefinition.html
答案 1 :(得分:0)
这是一个可以在詹金斯管道作业中使用的方法的示例:
private String[] getChoices {
def job = hudson.model.Hudson.instance.getItem(env.JOB_NAME)
def paramsProp = job.getProperty(ParametersDefinitionProperty.class)
def releaseTeamParameter = paramsProp.getParameterDefinitions().find { it.name == "MY_CHOICES_PARAM_NAME"}
return releaseTeamParameter.getChoices().toArray()
}
该方法旨在从作业本身内部执行,并且您需要指定参数名称来代替MY_CHOICES_PARAM_NAME