我正在根据我们在 MS VSO 工具中的数据为我的团队创建一个吞吐量计算器。为了准确指出我们开始在 PBI 上工作的日期,我需要提取 PBI 承诺的日期。
是否可以查询 MS VSO 产品以提取 PBI 将状态更改为“已提交”的日期?
我可以通过查询编辑器获取“创建日期”(恐怕只有列选项),但 VSO 似乎不允许访问状态更改日期。并且开始日期不正确,因为 PBI 在开发准备就绪之前可能已经积压了一段时间。
我正在根据我们在 MS VSO 工具中的数据为我的团队创建一个吞吐量计算器。为了准确指出我们开始在 PBI 上工作的日期,我需要提取 PBI 承诺的日期。
是否可以查询 MS VSO 产品以提取 PBI 将状态更改为“已提交”的日期?
我可以通过查询编辑器获取“创建日期”(恐怕只有列选项),但 VSO 似乎不允许访问状态更改日期。并且开始日期不正确,因为 PBI 在开发准备就绪之前可能已经积压了一段时间。
默认情况下无法通过查询实现这一点。
但是您可以使用 TFS API 查询工作项历史记录并检查状态转换发生时的时间戳。
请参考这篇文章:TFS SDK:使用 TFS API 的工作项历史可视化工具
您还可以使用REST API提取工作项更改状态的日期。
例如,您可以使用以下 PowerShell 示例将日期更改为“已提交”:
Param(
[string]$collectionurl = "https://instance.visualstudio.com", #If on-premise TFS change it to http://server:8080/tfs/DefaultCollection
[string]$workitemId = "62",
[string]$user = "username",
[string]$token = "token"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$baseUrl = "$collectionurl/_apis/wit/workitems/$($workitemId)/revisions?api-version=1.0"
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
$revisions = $response.value.fields | where({$_.'System.State' -eq 'Committed'}) # Change the sate which you want to get it's changed date here
$witrevisions = @()
foreach($revision in $revisions){
$customObject = new-object PSObject -property @{
"WorkItemType" = $revision.'System.WorkItemType'
"CommittedDate" = $revision.'System.ChangedDate'
"ChangedBy" = $revision.'System.ChangedBy'
}
$witrevisions += $customObject
}
$witrevisions | Select-Object -Last 1 `
WorkItemType,
CommittedDate,
ChangedBy