如何将复选框输入添加到 Azure DevOps 任务组?
How do you add a checkbox input to an Azure DevOps Task Group?
在 Azure DevOps 中,我创建了一个任务组,运行s Postman 使用 newman
CLI 进行测试。作为输入,用户可以传入 Postman 集合和环境文件的路径。
由于 newman
CLI 是必需的,因此任务组中的第一个任务是安装它。但是,在几个集合是 运行 的场景下,没有必要一遍又一遍地安装 CLI,所以我想提供一个复选框,然后根据值有条件地 运行 安装任务该复选框的。
由于任务组的 UI 非常缺乏有用的选项,我开始探索 API。我可以添加额外的输入,但是将明显的 type
选项设置为 checkbox
只会产生额外的文本 (string
) 输入。
POST https://dev.azure.com/{org}/{project}/_apis/distributedtask/taskgroups?api-version=5.1-preview.1
{
...
"inputs": [
{
"aliases": [],
"options": {},
"properties": {},
"name": "Rbt.Cli.Install",
"label": "Install 'newman' CLI?",
"defaultValue": true,
"required": false,
"type": "checkbox",
"helpMarkDown": "Choose whether or not to install the 'newman' CLI. You only need to install it if it hasn't already been installed by a previos task running on this job.",
"groupName": ""
},
...
],
...
}
仔细查看文档,有一个输入定义 - TaskInputDefinition
。但是,看起来好像负责编写 that documentation 的人有一天早早离开了,而且从来没有抽出时间来写。根本没有描述,因此不可能知道定义中属性的有效值。
如何向我的任务组添加复选框?
我现在发现任务组提供 picklist
作为输入类型。这允许向用户提供 yes/no 选项,并且根据他们的回答,我能够有条件地 运行 一项任务。
不过,我还是希望有一个复选框,如果有人知道该怎么做的话。
{
"aliases": [],
"options": {
"yes": "Yes - install CLI",
"no": "No - the CLI has already been installed"
},
"properties": {},
"name": "Postman.Cli.Install",
"label": "Install 'newman' CLI?",
"defaultValue": "yes",
"required": true,
"type": "picklist",
"helpMarkDown": "Choose whether or not to install the 'newman' CLI. You only need to install it if it hasn't already been installed by a previos task running on this job.",
"groupName": ""
}
您可以通过将类型设置为 boolean
轻松地将复选框添加到管道任务
{
"name": "Rbt.Cli.Install",
"type": "boolean",
"label": "Install 'newman' CLI?"
}
并根据复选框状态控制其他控件的可见性如下:
{
"name": "someOtherField",
"type": "string",
"label": "Some other field",
"visibleRule": "Rbt.Cli.Install = true"
},
在 Azure DevOps 中,我创建了一个任务组,运行s Postman 使用 newman
CLI 进行测试。作为输入,用户可以传入 Postman 集合和环境文件的路径。
由于 newman
CLI 是必需的,因此任务组中的第一个任务是安装它。但是,在几个集合是 运行 的场景下,没有必要一遍又一遍地安装 CLI,所以我想提供一个复选框,然后根据值有条件地 运行 安装任务该复选框的。
由于任务组的 UI 非常缺乏有用的选项,我开始探索 API。我可以添加额外的输入,但是将明显的 type
选项设置为 checkbox
只会产生额外的文本 (string
) 输入。
POST https://dev.azure.com/{org}/{project}/_apis/distributedtask/taskgroups?api-version=5.1-preview.1
{
...
"inputs": [
{
"aliases": [],
"options": {},
"properties": {},
"name": "Rbt.Cli.Install",
"label": "Install 'newman' CLI?",
"defaultValue": true,
"required": false,
"type": "checkbox",
"helpMarkDown": "Choose whether or not to install the 'newman' CLI. You only need to install it if it hasn't already been installed by a previos task running on this job.",
"groupName": ""
},
...
],
...
}
仔细查看文档,有一个输入定义 - TaskInputDefinition
。但是,看起来好像负责编写 that documentation 的人有一天早早离开了,而且从来没有抽出时间来写。根本没有描述,因此不可能知道定义中属性的有效值。
如何向我的任务组添加复选框?
我现在发现任务组提供 picklist
作为输入类型。这允许向用户提供 yes/no 选项,并且根据他们的回答,我能够有条件地 运行 一项任务。
不过,我还是希望有一个复选框,如果有人知道该怎么做的话。
{
"aliases": [],
"options": {
"yes": "Yes - install CLI",
"no": "No - the CLI has already been installed"
},
"properties": {},
"name": "Postman.Cli.Install",
"label": "Install 'newman' CLI?",
"defaultValue": "yes",
"required": true,
"type": "picklist",
"helpMarkDown": "Choose whether or not to install the 'newman' CLI. You only need to install it if it hasn't already been installed by a previos task running on this job.",
"groupName": ""
}
您可以通过将类型设置为 boolean
{
"name": "Rbt.Cli.Install",
"type": "boolean",
"label": "Install 'newman' CLI?"
}
并根据复选框状态控制其他控件的可见性如下:
{
"name": "someOtherField",
"type": "string",
"label": "Some other field",
"visibleRule": "Rbt.Cli.Install = true"
},