Как использовать косвенный перечислитель jsonschema для параметра расширенного выбора? - PullRequest
0 голосов
/ 29 октября 2018

Я использую плагин Jenkins Extended Choice Parameter, который зависит от json-редактора https://github.com/json-editor/json-editor (первоначально Дж. Дорн)

Я хочу представить два раскрывающихся списка, один с выбором:

  • альфа
  • бета
  • выпуск

и другой со списком веток git, зависящих от первого выбора.

Используя groovy, я могу получить ветви git и отсортировать их по трем массивам: alpha, beta и release, но я не уверен, как засунуть их в jsonEditorOptions, чтобы они могли быть enumSource и обновите второй список.

Моя неудачная попытка, приведенная ниже, гарантирует, что что-то изменится во втором окне списка, но только отдельные буквы (ограничено 1 элементом со срезом), но я не могу найти ничего, кроме элементов из первого.

Мне нужно иметь возможность использовать косвенное обращение к скрытому значению или скрытому элементу схемы, но пока не выяснил, как это сделать.

def jsonEditorOptions = Boon.fromJson(/{
        disable_edit_json: true,
        disable_properties: true,
        no_additional_properties: true,
        disable_collapse: true,
        disable_array_add: true,
        disable_array_delete: true,
        disable_array_reorder: true,
        theme: "bootstrap2",
        iconlib:"fontawesome4",
"schema":
{
  "title": "Product",
  "type": "object",
  "required": [ "product", "branch" ],
  "properties": {
    "product": {
      "title": "Product",
      "type": "string",
      "description": "Product family being build",
      "default": "alpha",
      "enum": [ "alpha", "beta", "release"]
    },
    "branch" : {
      "title": "Branch",
      "type": "string",
      "format": "select",
      "watch": {
        "prod": "products"
      },
      "enumSource": "prod"
    }
  }
}, 
startval: { }
}/);
...