我要创建规则如下:当自定义字段值设置为X时,将任务状态更改为新建。是否可以完成?很难相信这是不可能的,但我找不到一种方法来做到这一点。
hi3rlvi21#
默认自定义规则不支持更改状态。您可以参考两种解决方法。
变通办法1:
您可以自定义字段以决定是否更改状态,在字段更改时触发webhook,然后通过此webhook触发管道。在管道中,通过运行REST API工作项-更新来更改当前工作项的状态。下面是详细的步骤。1.在我的示例中定制一个名为“ChangeState”的字段,其定义如下:
1.按照此文档定义一个webhook资源来创建一个webhook和一个“传入的Webhook”服务连接。webhook的设置:
将Trigger on this type of event设置为Work item updated,将Field设置为在第一步中创建的自定义字段。1.将第二步创建的webhook设置为管道资源,运行REST API Work Items -Update更新工作项的状态,这里有YAML可供参考:
resources: webhooks: - webhook: ChangeWIState ### Webhook alias connection: ChangeNameSC ### Incoming webhook service connection pool: vmImage: ubuntu-latest steps: - task: PowerShell@2 inputs: targetType: 'inline' script: | Write-Host ${{ parameters.ChangeWIState.resource.workItemId}} $token = "<your PAT>" $token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)")) $url="https://dev.azure.com/<org name>/_apis/wit/workitems/${{ parameters.ChangeWIState.resource.workItemId}}?api-version=7.0" $body = @' [ { "op": "add", "path": "/fields/System.State", "value": "New" } ] '@ $head = @{ Authorization =" Basic $token" } $response = Invoke-RestMethod -Uri $url -Method PATCH -Headers $head -Body $body -ContentType application/json-patch+json
“ChangeWISState”是我的webhook的名称,“ChangeNameSC”是我的服务连接的名称。每当字段“ChangeState”发生更改时,都会触发管道运行REST API,将状态更改为new。
变通办法2:
可以使用此扩展名“Work item form one click actions。1.将操作设置为:
1.触发器设置如下:
当字段“Test”的值更改为“X”时,状态将更改为“New”。x1c4d 1x
1条答案
按热度按时间hi3rlvi21#
默认自定义规则不支持更改状态。您可以参考两种解决方法。
变通办法1:
您可以自定义字段以决定是否更改状态,在字段更改时触发webhook,然后通过此webhook触发管道。在管道中,通过运行REST API工作项-更新来更改当前工作项的状态。
下面是详细的步骤。
1.在我的示例中定制一个名为“ChangeState”的字段,其定义如下:
1.按照此文档定义一个webhook资源来创建一个webhook和一个“传入的Webhook”服务连接。webhook的设置:
将Trigger on this type of event设置为Work item updated,将Field设置为在第一步中创建的自定义字段。
1.将第二步创建的webhook设置为管道资源,运行REST API Work Items -Update更新工作项的状态,这里有YAML可供参考:
“ChangeWISState”是我的webhook的名称,“ChangeNameSC”是我的服务连接的名称。
每当字段“ChangeState”发生更改时,都会触发管道运行REST API,将状态更改为new。
变通办法2:
可以使用此扩展名“Work item form one click actions。
1.将操作设置为:
1.触发器设置如下:
当字段“Test”的值更改为“X”时,状态将更改为“New”。x1c4d 1x