【问题标题】:How to automaticly change Work Item State如何自动更改工作项状态
【发布时间】:2023-01-12 17:04:11
【问题描述】:

我想创建如下规则: 当自定义字段值设置为 X 时,将任务状态更改为新建。可以吗?

很难相信这是不可能的,但我找不到办法做到这一点。

【问题讨论】:

    标签: azure azure-devops azure-boards


    【解决方案1】:

    默认自定义规则不支持更改状态。您可以参考两种解决方法。

    解决方法 1:

    你可以自定义一个字段来决定是否改变状态,当字段改变时触发一个webhook,然后通过这个webhook触发一个pipeline。在管道中,通过运行 REST API Work Items – Update 更改当前工作项的状态。

    有详细的步骤。

    1. 在我的示例中自定义一个名为“ChangeState”的字段。它的定义如下:

      1. 按照此文档Define a webhooks resource 创建一个 webhook 和一个“Incoming Webhook”服务连接。 webhook的设置:

      触发此类事件工作项已更新, 放场地到第一步创建的自定义字段。

      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
        

      “ChangeWIState”是我的 webhook 的名称,“ChangeNameSC”是我的服务连接的名称。

      每次“ChangeState”字段发生变化时,都会触发管道运行 REST API 以将状态更改为新状态。

      解决方法 2:

      您可以使用此扩展名“Work item form one click actions

      1. 设置操作如下:

      2. 设置触发器如下:

        当“Test”字段的值变为“X”时,状态将变为“New”。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多