https://github.com/jenkinsci/extensible-choice-parameter-plugin
Jenkins plugin to define choice build parameters where the way to provide choices can be extended.
https://github.com/jenkinsci/extensible-choice-parameter-plugin
adopt-this-plugin
Last synced: 8 months ago
JSON representation
Jenkins plugin to define choice build parameters where the way to provide choices can be extended.
- Host: GitHub
- URL: https://github.com/jenkinsci/extensible-choice-parameter-plugin
- Owner: jenkinsci
- Created: 2013-01-05T16:12:48.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2025-02-07T02:01:28.000Z (8 months ago)
- Last Synced: 2025-02-07T02:32:22.484Z (8 months ago)
- Topics: adopt-this-plugin
- Language: Java
- Homepage: https://plugins.jenkins.io/extensible-choice-parameter/
- Size: 580 KB
- Stars: 18
- Watchers: 98
- Forks: 36
- Open Issues: 5
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.adoc
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
= Extensible Choice Parameter plugin
:sectanchors:
Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:
* https://jenkins.io/security/advisory/2017-04-10/[Arbitrary code execution vulnerability]
This plugin adds "Extensible Choice" as a build parameter.You can select how to retrieve choices, including the way to share choices among all jobs.
[NOTE]
====
For pipeline users:https://plugins.jenkins.io/editable-choice/[Editable Choice plugin] is available and designed pipeline friendly. Please try that for pipelines.
Extensible Choice Parameter plugin is designed for GUI-based jobs like freestyle projects, matrix projects and so on. It's not planned to support pipeline syntaxes.
====[[ExtensibleChoiceParameterplugin-Whatsthis]]
== What's this?This plugin provides a Extensible Choice parameter:
* When building, the value can be selected with a dropdown like a built-in Choice parameter.
* The choices can be provided in several ways:
** Global Choice Parameter: defines choices in the Configure System page.
*** Choices can be shared by multiple jobs.
*** Updating the choices in the Configure System, every job can immediately refer the updated choices.
** Textarea Choice Parameter: writes choices in a textarea, just like a built-in Choice parameter.
** System Groovy Script Choice Parameter: runs a System Groovy script to
determine the list of choices
** File Choice Parameter: lists files in a directory.
* Checking Editable checkbox allows you to specify any value, even one not in the choices.
** Edited values can be added to the choice used next time automatically by checking "Add Edited Value".
* You can add a new way to provide choices with Extension Points.[[ExtensibleChoiceParameterplugin-Disablingproviders]]
== Disabling providersSome choice providers may cause security issues in your system:
[cols=",,",options="header",]
|===
|Choice Provider |Security Issue |Note
|File Choice Parameter |Any users with project configuration privilege can list files in the OS with the privilege of the OS user Jenkins run with. |Users can do that also with "Execute shell" or "Execute Windows Batch" build step.
|===You can disable specific providers in system configuration page:
#image:docs/images/extensible-choice-parameter-global-configuration.png[Global configuration]#
In the above screen, System Groovy Script Choice Parameter (unchecked one) is disabled.
[[ExtensibleChoiceParameterplugin-Screenshots]]
== Screenshots* "Extensible Choice" is added as a type of build parameters. +
#image:docs/images/sc1_newparameter.png[Add Parameter]#
* You can select the way to define choices of the parameter. +
#image:docs/images/sc2_choiceprovider.png[Choice Provider]#
** A new way to provide choices can be added with Extension Points.
* Selecting "Textarea Choice Parameter", you can define choices like the built-in Choice parameter. +
#image:docs/images/sc3_textarea.png[Textarea Choice Parameter]#
* "Global Choice Parameter" enables you to select a set of choices from the ones defined in System Configuration page.
** Defining in System Configuration page: +
#image:docs/images/sc4_globalchoice1.png[Global Choice Parameter in System Configuration]#
** Select which set of choices to use: +
#image:docs/images/sc5_globalchoice2.png[Global Choice Parameter]#
* "System Groovy Choice Parameter" generate choices with a Groovy script: +
#image:docs/images/sc7_groovy.png[System Groovy Choice Parameter]#
* "File Choice Parameter" enables select a file in a specified directory: +
#image:docs/images/sc8_files.png[File Choice Parameter]#
* You can specify its default value. This is useful with Global Choice Parameter to specify different default values in jobs: +
#image:docs/images/sc9_default.png[Default Choice]#
* Checking "Editable" enables you to input a value not in choices at build time: +
#image:docs/images/sc6_editable.png[Editable]#
** Textarea Choice Parameter and Global Choice Parameter provides "Add Edited Value", which automatically adds a value not in the choice list: +
#image:docs/images/sc10_editedvalue.png[Add Edited Value]#[[ExtensibleChoiceParameterplugin-Extensionpoint]]
== Extension pointA new way to provide choices can be added with extending
`+ChoiceListProvider+`, overriding the following method:[source,syntaxhighlighter-pre]
----
abstract public List getChoiceList()
----[[ExtensibleChoiceParameterplugin-Issues]]
== Issueshttps://issues.jenkins-ci.org/issues/?jql=project%20%3D%20JENKINS%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened%2C%20%22In%20Review%22%2C%20Verified)%20AND%20component%20%3D%20%27extensible-choice-parameter-plugin%27%20%20%20[Open Issues]
To report a bug or request an enhancement to this plugin please create a ticket in JIRA (you need to login or to sign up for an account).
Also have a look on https://www.jenkins.io/participate/report-issue/[How to report an issue]* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=1&components=17512&priority=4&assignee=ikedam[Bug report]
* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=4&components=17512&priority=4[Request or propose an improvement of existing feature]
* https://issues.jenkins-ci.org/secure/CreateIssueDetails!init.jspa?pid=10172&issuetype=2&components=17512&priority=4[Request or propose a new feature]include::CHANGELOG.adoc[]