{"id":15045699,"url":"https://github.com/jenkinsci/multiselect-parameter-plugin","last_synced_at":"2025-09-01T16:41:18.032Z","repository":{"id":41809858,"uuid":"302103960","full_name":"jenkinsci/multiselect-parameter-plugin","owner":"jenkinsci","description":"The Multiselect parameter plugin is an extension to Jenkins parameterized builds. It allows Jenkins users to create more complex variables consisting of a configurable number of interdependent drop down boxes.","archived":false,"fork":false,"pushed_at":"2024-08-09T09:19:52.000Z","size":757,"stargazers_count":4,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T06:11:15.170Z","etag":null,"topics":["jenkins","jenkins-plugin","parameter"],"latest_commit_sha":null,"homepage":"https://plugins.jenkins.io/multiselect-parameter/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenkinsci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-07T16:59:29.000Z","updated_at":"2024-11-21T18:35:10.000Z","dependencies_parsed_at":"2024-09-25T01:58:32.392Z","dependency_job_id":"66941442-2a0b-476d-bf2c-c0ec016983bc","html_url":"https://github.com/jenkinsci/multiselect-parameter-plugin","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fmultiselect-parameter-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fmultiselect-parameter-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fmultiselect-parameter-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fmultiselect-parameter-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/multiselect-parameter-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237221176,"owners_count":19274447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jenkins","jenkins-plugin","parameter"],"created_at":"2024-09-24T20:52:10.932Z","updated_at":"2025-02-05T00:31:19.766Z","avatar_url":"https://github.com/jenkinsci.png","language":"Java","readme":"# Multiselect Parameter Plugin\n\n[![Build Status](https://ci.jenkins.io/job/Plugins/job/multiselect-parameter-plugin/job/main/badge/icon)](https://ci.jenkins.io/job/Plugins/job/multiselect-parameter-plugin/job/main/)\n[![Contributors](https://img.shields.io/github/contributors/jenkinsci/multiselect-parameter-plugin.svg)](https://github.com/jenkinsci/multiselect-parameter-plugin/graphs/contributors)\n[![Jenkins Plugin](https://img.shields.io/jenkins/plugin/v/multiselect-parameter.svg)](https://plugins.jenkins.io/multiselect-parameter)\n[![GitHub release](https://img.shields.io/github/release/jenkinsci/multiselect-parameter-plugin.svg?label=changelog)](https://github.com/jenkinsci/multiselect-parameter-plugin/releases/latest)\n[![Jenkins Plugin Installs](https://img.shields.io/jenkins/plugin/i/multiselect-parameter.svg?color=blue)](https://plugins.jenkins.io/multiselect-parameter)\n[![codecov](https://codecov.io/github/swesteme/multiselect-parameter-plugin/branch/main/graph/badge.svg?token=SFXR05LMD4)](https://codecov.io/github/swesteme/multiselect-parameter-plugin)\n\n## Introduction\n\nThe Multiselect parameter plugin is an extension to Jenkins parameterized builds. It allows Jenkins users to\ncreate more complex variables consisting of a configurable number of interdependent drop-down boxes.\n\n![Example select boxes](images/sample_build.png)\n\n## Getting started\n\nAs soon as the plugin has been installed in Jenkins, parameterized jobs offer a new type of build parameters,\nnamed \"Multiselect parameter\".\n\nThere are two configuration variants described below: one for *standard* Jenkins jobs, one for the popular *pipelines*,\nwhich allow for programmatic job configuration.\n\n### \"Standard\" job configuration\n\nA simple configuration form allows the setup of a parameter name, a description\nand a CSV configuration to use in creation of dependency tree.\n\nThere are four different types of rows used to describe the parameter and its values/variables:\n\n* H: header labels for the drop-down boxes, one per variable\n* V: variable names used as environment variables in build process\n* T: titles for the content items in the following row (optional, fallback is the content itself as a label)\n* C: the content items that will be passed in the environment variables upon selection\n\nThe rows \"H\" and \"V\" only appear once as first and second row. The rows \"T\" and \"C\" are repeated.\n\nNote: the \"T\" rows are optional, but may be useful for more technical content values that need a little bit of extra\nexplanation.\n\n![Example configuration](images/sample_configuration.png)\n\n#### Example\n\nIn the following simple example, the \"build with parameters\" step requests to select a favourite team in\na number of sports categories and countries.\n\n```csv\nH,Sport,Team\nV,SELECTED_SPORT,SELECTED_TEAM\nC,Tennis,Tennisclub Rumeln-Kaldenhausen e. V.\nT,,Alternative label\nC,Tennis,Oppumer TC\nC,Football,Rumelner TV\nC,Football,FC Rumeln\nC,Wakeboard,WSC Duisburg Rheinhausen\n```\n\nThis will display two drop-down boxes. One with the label \"Sport\", one with the label \"Team\".\nThe first drop-down box contains the values \"Tennis\", \"Football\" and \"Wakeboard\", the second will only hold the values \"\nTennisclub Rumeln-Kaldenhausen e. V.\" and \"Oppumer TC\".\nWhen the first value is switched to \"Wakeboard\", the second drop-down boxes content will change to \"WSC Duisburg\nRheinhausen\".\nAs soon as the build is started, the environment variables SELECTED_SPORT and SELECTED_TEAM will contain the selected\nvalues.\n\n### Pipeline job configuration\n\nThe same example from above would be configured in a tree-structure, which can be created programmatically and resembles\nthe internal structure that would be created from CSV internally.\n\n![Pipeline configuration](images/sample_pipeline_config.png)\n\nThe light blue box shows the definition and configuration of the first drop-down box. The purple box shows the\ndefinition of values for the second drop-down box. Note that this is a simple example with only two combo boxes. It is\npossible to define any number of variable descriptions here, in which case the items in the purple boxes would also\nget \"children\".\n\n#### Example\n\nThe following source code shows the example as complete (very simple) pipeline script.\n\n```groovy\npipeline {\n    agent any\n    stages {\n        stage('Parameters') {\n            steps {\n                script {\n                    properties([\n                            parameters([\n                                    multiselect(\n                                            decisionTree: [\n                                                    variableDescriptions: [\n                                                            [\n                                                                    label       : 'Sport',\n                                                                    variableName: 'SELECTED_SPORT'\n                                                            ],\n                                                            [\n                                                                    label       : 'Team',\n                                                                    variableName: 'SELECTED_TEAM'\n                                                            ]\n                                                    ],\n                                                    itemList: [\n                                                            [children: [\n                                                                    [value: 'Tennisclub Rumeln-Kaldenhausen e. V.'],\n                                                                    [label: 'Alternative label', value: 'Oppumer TC']\n                                                                 ],\n                                                             value   : 'Tennis'\n                                                            ],\n                                                            [children: [\n                                                                    [value: 'Rumelner TV'],\n                                                                    [value: 'FC Rumeln']\n                                                                 ],\n                                                             value   : 'Football'],\n                                                            [children: [\n                                                                    [value: 'WSC Duisburg Rheinhausen']\n                                                                 ],\n                                                             value   : 'Wakeboard']\n                                                    ]\n                                            ],\n                                            description: 'Please select your favourite team!',\n                                            name: 'Favourite team'\n                                    )\n                            ])\n                    ])\n                }\n            }\n        }\n\n        stage('Print variables') {\n            steps {\n                sh 'set'\n            }\n        }\n    }\n}\n\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fmultiselect-parameter-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fmultiselect-parameter-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fmultiselect-parameter-plugin/lists"}