【发布时间】:2018-06-21 07:27:41
【问题描述】:
我想使用 api jenkins 在我的工作中检索我的选择参数的选择列表
我试试这个:
但我得到的只是价值
“名称”:“上下文”, “价值”:“富”
我会这样输出:
“名称”:“上下文”, "值": "foo, foo, ..."
有可能吗?
【问题讨论】:
-
最接近我得到选择的方法是使用:?tree=actions[parameterDefinitions[choices]]
我想使用 api jenkins 在我的工作中检索我的选择参数的选择列表
我试试这个:
但我得到的只是价值
“名称”:“上下文”, “价值”:“富”
我会这样输出:
“名称”:“上下文”, "值": "foo, foo, ..."
有可能吗?
【问题讨论】:
请务必查看文档以检索给定 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
}
您可以从构建参数中检索的特定项目将取决于该参数类型是什么。您需要查找每个 API,例如 ChoiceParameter
https://javadoc.jenkins.io/hudson/model/ChoiceParameterDefinition.html
【讨论】:
这是一个可以在 Jenkins 管道作业中使用的方法示例:
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
【讨论】: