【发布时间】:2023-01-12 17:04:11
【问题描述】:
我想创建如下规则: 当自定义字段值设置为 X 时,将任务状态更改为新建。可以吗?
很难相信这是不可能的,但我找不到办法做到这一点。
【问题讨论】:
标签: azure azure-devops azure-boards
我想创建如下规则: 当自定义字段值设置为 X 时,将任务状态更改为新建。可以吗?
很难相信这是不可能的,但我找不到办法做到这一点。
【问题讨论】:
标签: azure azure-devops azure-boards
默认自定义规则不支持更改状态。您可以参考两种解决方法。
解决方法 1:
你可以自定义一个字段来决定是否改变状态,当字段改变时触发一个webhook,然后通过这个webhook触发一个pipeline。在管道中,通过运行 REST API Work Items – Update 更改当前工作项的状态。
有详细的步骤。
放触发此类事件到工作项已更新, 放场地到第一步创建的自定义字段。
将第二步创建的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
“ChangeWIState”是我的 webhook 的名称,“ChangeNameSC”是我的服务连接的名称。
每次“ChangeState”字段发生变化时,都会触发管道运行 REST API 以将状态更改为新状态。
解决方法 2:
您可以使用此扩展名“Work item form one click actions。
【讨论】: