发送过去 24 小时内更新的 Azure DevOps 工作项目的每日电子邮件(批量)

问题描述 投票:0回答:1

我想创建一封每日通知电子邮件,其中包含在讨论部分收到新评论、状态已更改、已分配给某人或具有任何其他字段的所有工作项目(说明、努力、截止日期等)已更改。

我想将这些工作项目编译成一封电子邮件,但也包括更新本身是什么,并在one编译的电子邮件中发送所有工作项目。

我知道可以创建一个查询,列出过去 24 小时内“更改日期”变量所在的项目,但据我所知,查询工具无法列出具体执行的操作。

我目前正在一个全新的项目环境中执行此操作,没有设置自定义变量,没有为工作项指定规则,什么都没有,一片空白画布。

感谢您的意见!

azure-devops power-automate azure-devops-rest-api email-notifications azure-boards
1个回答
0
投票

我想创建一封每日通知电子邮件,其中包含在讨论部分收到新评论、状态已更改、已分配给某人或具有任何其他字段(说明、努力、截止日期等)发生了变化。

根据您的需求,您需要获取最近24小时内发生变更的工作项列表,并获取变更详情。

恐怕没有现成的方法可以直接获取工作项列表和更改的详细信息。

为了满足您的需求,您可以考虑使用PowerShell脚本运行Rest API来获取更改的工作项列表以及最近24小时内的更改详细信息。

这是示例代码:

$token = "PAT"

$url="https://dev.azure.com/{Orgname}/_apis/wit/wiql?api-version=5.1"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))

$JSON = @'
{
  
  "query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.ChangedDate] >= @today-1  order by [Microsoft.VSTS.Common.Priority] asc, [System.CreatedDate] desc"

}
'@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -Body $JSON -ContentType application/json

foreach($workitemid in $response.workItems.id)
{ 
  echo $workitemid

  $url1="https://dev.azure.com/{Orgname}/_apis/wit/workItems/$($workitemid)/updates?api-version=7.1-preview.3"

  $GetUpdates = Invoke-RestMethod -Uri $url1 -Headers @{Authorization = "Basic $token"} -Method GET  -ContentType application/json

  foreach($update in $GetUpdates.value)
  {

      $Today= Get-Date $response.asOf
      $Yesterday = $Today.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss")


      $Formatchangeddate= (Get-Date $update.fields.'System.ChangedDate'.newValue).ToString("yyyy-MM-ddTHH:mm:ss")

      echo $Formatchangeddate

     if($Formatchangeddate -gt $Yesterday)
     {
      echo $update.id
      echo $update.fields.'System.History'
     }
  }

}

上面的示例使用 Rest API:Wiql - 通过 Wiql 查询更新 - 列表

它将根据工作项字段获取更改的工作项列表:System.changeddate

然后它将使用Rest API循环每个工作项的更改并获取更新的字段。

结果:

目前仅获取少量相关信息。您可以根据需要进一步完善代码,以获得更多所需信息。

© www.soinside.com 2019 - 2024. All rights reserved.