【问题标题】:Api Jenkins get list of choice parameterApi Jenkins 获取选择参数列表
【发布时间】:2018-06-21 07:27:41
【问题描述】:

我想使用 api jenkins 在我的工作中检索我的选择参数的选择列表

我试试这个:

http://jenkins-url/api/json?tree=jobs[name,builds[number,actions[parameters[name,value]]]]&pretty=true

但我得到的只是价值

“名称”:“上下文”, “价值”:“富”

我会这样输出:

“名称”:“上下文”, "值": "foo, foo, ..."

有可能吗?

【问题讨论】:

  • 最接近我得到选择的方法是使用:?tree=actions[parameterDefinitions[choices]]

标签: jenkins jenkins-pipeline


【解决方案1】:

请务必查看文档以检索给定 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

【讨论】:

    【解决方案2】:

    这是一个可以在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多