azure-devops - Azure Devops API 中的时间分段数据
问题描述
这更多的是功能问题。我正在查看 API 和相应的数据,这些数据可以提供我每天花费在任务/错误/功能/EPIC 等项目上的资源的时间。到目前为止,我有以下查询,这给了我以下信息:
public int Id { get; set; }
public string AssignedTo { get; set; }
public string Title { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime ChangedDate { get; set; }
public int Priority { get; set; }
public DateTime StateChangeDate { get; set; }
public string State { get; set; }
public string WorkItemType { get; set; }
public float? RemainingWork { get; set; }
public float? OriginalEstimate { get; set; }
public float? CompletedWork { get; set; }
有人可以建议我应该参考什么,所以我可以获得任务/功能/史诗等的每日时间信息。
解决方案
据我所知,Azure devops 并不专注于微观管理,而是专注于低价值指标。
因此,没有开箱即用的 API 可以获取此值。
Azure devops 不会跟踪每天花费在工作项上的时间。它跟踪花费的总时间。如果您想要每天每个工作项的值,则必须查看迭代/工作项历史并计算运行差异。但这不是一个方便的方法。
您的要求是类似于时间报告的功能。我建议你可以使用扩展:Timetracker
这是我的示例:在Timetracker -> TimeSheet
您可以添加每天花在单个工作项上的时间。它将记录并计算花费的总时间。
在工作项中,您还可以在时间选项卡中看到相同的信息(安装扩展后)。
更新:
如果您想使用 Work Item History 来获取时间,您可以尝试以下步骤:
- 为工作项类型添加自定义字段(例如 DailyHour)。您可以参考此文档了解更详细的步骤。
- 您可以使用 Rest API 来获取所有工作项历史记录。修订 - 列表
可以使用脚本比较时间字段,最后筛选出符合条件的值。
这是我的 PowerShell 脚本示例:
$token = "PAT"
$url="https://dev.azure.com/{organizationName}/{ProjectName}/_apis/wit/workItems/{WorkItemId}/revisions?api-version=6.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
$startdate = (Get-Date 2020-11-21).toString("yyyy-M-dd")
$enddate = (Get-Date 2020-12-19).toString("yyyy-M-dd")
$Totalhour = 0
ForEach( $day in $response.value.fields)
{
if($day.'System.ChangedDate' -ge $startdate -and $today -le $enddate)
{
echo $day.'System.ChangedDate'
echo $day.'System.ChangedBy'.displayName
echo $day.'Custom.DailyHour'
echo ''
$Totalhour = $Totalhour + $day.'Custom.DailyHour'
}
echo $Totalhour
}
结果:
工作流程:任何用户在完成工作后的每日小时更新他的时间,然后工作项历史将一直记录。
在上面的脚本中,我是根据一个时间段进行过滤的,你可以根据每一天进行判断,从而得到每一天的总和
推荐阅读
- python - cv2 Farneback 光流值太低
- android - 如何在 Google Play 管理中心拒绝/取消/删除 Beta 版本
- assembly - 使用 Tracer SCO 调试器程序集的奇数/偶数和左旋转问题
- java - 重定向根目录而不是 Google Domain 或 Google App Engine 中的文件夹
- reactjs - 如何解决 Typescript 错误 -- mapbox-gl & React hooks
- java - 如何使用界面在两个活动之间建立一个简单的桥梁?
- opencv - OpenCV- Trackbar 不会出现- 窗口不会调整大小
- html - 为什么我的 VBA 程序没有从网站获取所有等于“路径”的标签名称?
- python - Python 不理解 RAM 驱动器上的 tmp 文件夹
- php - 如何更改身份验证错误消息?