Azure devops Json只在不可见字段上触发验证

Azure devops Json只在不可见字段上触发验证,azure-devops,azure-pipelines-build-task,Azure Devops,Azure Pipelines Build Task,我正在尝试创建Azure DevOps管道自定义扩展。我有一个task.json,其中字段在某些条件下是可见的 例如: { "name": "actions", "type": "picklist", "label": "Actions", "defaultValue": "Select", "required": true, "helpMarkDown": "Select an Action from the dropdown as per your requirem

我正在尝试创建Azure DevOps管道自定义扩展。我有一个task.json,其中字段在某些条件下是可见的

例如:

 {
  "name": "actions",
  "type": "picklist",
  "label": "Actions",
  "defaultValue": "Select",
  "required": true,
  "helpMarkDown": "Select an Action from the dropdown as per your requirement.",
  "options": {
    "New": "Add",
    "Delete": "Delete"
  }
},

{
  "name": "backEndIPAddress",
  "type": "string",
  "label": "IP Address",
  "required": true,
  "defaultValue": "",
  "helpMarkDown": "",
  "visibleRule": "actions = New",
  "validation": {
    "expression": "isMatch(value,'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?){0,15}$','IgnoreCase')",
    "message": "Invalid IP Address. Please try again!"
  }
} 
当IPAddress字段被隐藏时,仍然尝试验证,但验证失败。如何确保字段仅在可见时才被验证?

有几个选项:

  • 为输入设置默认值
  • 更新正则表达式以在开始处包含
    ^$|
    以允许空值(
    'require':true
    将考虑所需值)
请记住,应该有一个默认的
isIpV4Address(value:string)
函数,这样就不必指定正则表达式

从文档中看,似乎有一个即将出现的
when
子句,它将指示何时触发规则集,我想这可能会导致当前不需要的行为

另见:


因为我不能使用默认值,所以我使用了regex更改。使用isIpV4Address的问题是,它再次检查是否为空并抛出错误。