很抱歉,如果SO不是最佳位置,但我在JIRA中启用了时间跟踪,并希望能够在给定的日期范围内为每个用户生成时间报告。我唯一的时间跟踪报告选项是非常有限的,并没有做我想要的,是否可以通过标准功能或免费插件?
答案 0 :(得分:6)
您可能想查看Tempo Plugin for JIRA timetracking。它提供有关用户,团队,项目和客户级别的时间表,报告和小工具。
答案 1 :(得分:3)
答案 2 :(得分:2)
如果您不想为简单的操作支付很多钱,例如获取每个用户的时间摘要。
我发现这个流程很有用:
您还可以创建计算列以获得以小时为单位的时间(仅将其除以3600)
希望有所帮助
答案 3 :(得分:0)
使用 Better Excel Plugin,您可以利用Microsoft Excel中的所有报告功能。
此插件将任何类型的JIRA数据(包括问题字段和工作日志)导出到custom Excel templates。模板可以使用过滤到日期范围,并可以Excel pivot table显示您的报告。如果您需要更多维度(例如按项目,按组件,按周,按月等进行额外分组),这些都非常简单。您还可以在数据透视表中可视化输出。
提示:插件中包含一个名为 worklog-report.xlsx 的默认模板,可以按原样使用,也可以作为进一步自定义的起点。它看起来像这样(第一个工作表中有一个按项目划分的数据透视图,但我没有关于它的截图):
创建模板后,您可以通过单击甚至generate it and email it to you automatically随时将其与最新的JIRA数据合并。
免责声明:我是开发此付费插件的开发人员。
答案 4 :(得分:0)
您可以使用JIRA的Everhour插件轻松完成此操作。它允许在给定的日期范围内为每个用户接收综合报告。您可以完全自由地构建报表的任何其他布局,并根据需要添加任意数量的数据列。
答案 5 :(得分:0)
如果您使用的是Windows,则可以运行以下powershell脚本将数据提取到CSV文件。
打开Powershell ISE(它已安装到所有Windows 7及更高版本的PC上)
创建新的PowerShell脚本(ctrl + n)
将以下代码块中的文本粘贴到新文件
##################################################################
# Variables
##################################################################
$username = "myname@asdf.com"
$password = Read-host "What's your Jira password?" -AsSecureString
#$password = ""
$jiraDomain = "asdf.atlassian.net"
$projectKey = "ABC"
$startDate = [datetime]::ParseExact('2017-05-08', 'yyyy-MM-dd', $null)
$endDate = Get-Date
#Get-Date = today
$csvFileName =c:\temp\Worklog.csv
##################################################################
# Functions
##################################################################
function get-jiraData {
param( [string]$restRequest)
Invoke-RestMethod -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Uri $restRequest
}
function get-issues {
param( [string]$projectName)
$uri = "https://${jiraDomain}/rest/api/2/search?jql=project=${projectName}"
$issuesPage = get-jiraData -RestRequest $uri
#write first batch of issues
$issuesPage.issues
#do next batches
do {
$startAt = $issuesPage.maxResults + 1
$uri = "https://${jiraDomain}/rest/api/2/search?jql=project=${projectName}&startAt=$startAt"
$issuesPage = get-jiraData -RestRequest $uri
#write next batch of issues
$issuesPage.issues
} while (($issuesPage.startAt + $issuesPage.maxResults) -lt $issuesPage.total)
}
filter convert-worklog {
$worklog = New-Object System.Object
$worklog | Add-Member –type NoteProperty –Name Person –Value $_.author.name
$worklog | Add-Member –type NoteProperty –Name IssueKey –Value $key
$startDate = [datetime]::ParseExact($_.started.Substring(0,16), 'yyyy-MM-ddTHH:mm', $null)
$worklog | Add-Member –type NoteProperty –Name DateLogged –Value $startDate
$TimeMinutes = $_.timeSpentSeconds / 60
$worklog | Add-Member –type NoteProperty –Name TimeSpent –Value $TimeMinutes
$worklog | Add-Member –type NoteProperty –Name Comment –Value $_.comment
$worklog
}
filter extract-worklogs {
#$key = "WL-22"
$key = $_.key
$uri = "https://${jiraDomain}/rest/api/2/issue/${key}/worklog"
$worklogsPage = get-jiraData -RestRequest $uri
#write first batch of worklogs
$worklogsPage.worklogs | convert-worklog
#Check for another batch of worklogs
do {
$startAt = $worklogsPage.maxResults + 1
$uri = "https://${jiraDomain}/rest/api/2/issue/${key}/worklog?startAt=$startAt"
$worklogsPage = get-jiraData -RestRequest $uri
#write next batch of worklogs
$worklogsPage.worklogs | convert-worklog
} while (($worklogsPage.startAt + $worklogsPage.maxResults) -lt $worklogsPage.total)
}
##################################################################
# Execution
##################################################################
#Setup Authentication variable
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
#This grabs all the worklogs for a project, then filters them by
$WorkLogs = get-issues -projectName $projectKey | extract-worklogs | ?{ $_.DateLogged -gt $startDate -and $_.DateLogged -lt $endDate } | sort DateLogged
$WorkLogs | export-csv $csvFileName -NoTypeInformation
修改文件开头的变量
在PC上某处保存为powershell脚本
双击运行脚本