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
对于每日时间,您可以使用第三方工具。引用此线程:
有没有办法在 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
对于每日时间,您可以使用第三方工具。引用此线程: