TFS - 每日签到报告

TFS - Daily Report on Checkins

有没有办法在 TFS 中获取有关项目所有签入的每日报告?

此外,我能否获得有关前一天在 TFS 中输入的所有小时数的类似信息?

您可以使用 TFVC or for Git 的 REST API 检索有关对这些存储库所做更改的信息。但是,有些小部件可以固定到团队的仪表板上,以提供有关最近提交的最新信息。

对于工作项,您可以通过相同的 REST API 检索有关工作项的各种详细信息。但是,您问题的措辞 ("hours entered") 听起来像是您在尝试将工作项用作时间跟踪器,而这实际上并不是它们应该如何使用。有很多提供时间跟踪支持的第三方扩展,但提供工具推荐不是 Stack Overflow 的主题,老实说,我对其中任何一个都没有太多经验。工作项通常用于密切关注剩余 工作量与您的初始估计相比,而不是已完成 的工作量。

准确说明您要跟踪的内容以及您为什么要跟踪它会更好。可能有很好的方法来显示您所追求的信息,但这实际上取决于目标受众和您要衡量的精确指标。

对于每日签到报告,您可以使用 REST API 获取每日变更集信息。

您可以使用以下 PowerShell 脚本查询和导出在 前一天:

创建的变更集
$project = "TFVC-Scrum"
$fromDate = (Get-Date).AddDays(-1).ToString("yyyy-M-d")
$baseUrl = "http://server:8080/tfs/CollectionLC/TFVC-Scrum/_apis/tfvc/changesets"           
$changeSetHistoryUrl = "{0}?api-version=1.0&searchCriteria.itemPath=$/{1}&searchCriteria.fromDate={2}" -f $baseUrl, $project, $fromDate #{1} is the first param $project, and {2} is the second param $fromDate
$changeSets = (Invoke-RestMethod -Uri $changeSetHistoryUrl -Method Get -UseDefaultCredential).value
$filename = $fromDate + "-" + "ChangesetReport"

$changeResults = @()

foreach($changeSet in $changeSets){
    $changeSetUrl = "{0}/{1}?api-version=1.0&includeworkitems=true&includeDetails=true" -f $baseUrl, $changeSet.changesetId

    $changeSetItem = Invoke-RestMethod -Uri $changeSetUrl -Method Get -UseDefaultCredential

    $customObject = new-object PSObject -property @{
          "ChangeSetId" = $changeSetItem.ChangeSetId
          "CheckinNotesName" = $changeSetItem.checkinNotes.name
          "CheckinNotesValue" = $changeSetItem.checkinNotes.value
          "CheckedInBy" = $changeSetItem.checkedInBy.displayName
          "Comment" = $changeSetItem.Comment
          "CreatedDate" =  ([datetime]$changeSetItem.CreatedDate).ToString("MM/dd/yyyy HH:mm")
          "WorkItem" = switch($changeSetItem.WorkItems.WorkItemType) 
                        {
                          "" {$null}
                         default {"[{0} - {1} - {2}] {3}" -f $changeSetItem.WorkItems.WorkItemType, $changeSetItem.WorkItems.Id, $changeSetItem.WorkItems.State, $changeSetItem.WorkItems.Title}
                    }
          "WorkItemAssignedTo" =  $changeSetItem.WorkItems.AssignedTo
        } 

    $changeResults += $customObject     
}

$changeResults | Select `
                ChangeSetId,
                CheckinNotesName, 
                CheckinNotesValue, 
                CreatedDate,
                CheckedInBy,
                WorkItem,
                WorkItemAssignedTo,
                Comment | export-csv -Path E:$filename.csv -NoTypeInformation

对于每日时间,您可以使用第三方工具。引用此线程: