抱歉,如果 SO 不是最好的地方,但我在 JIRA 中启用了时间跟踪,并且希望能够在给定的日期范围内为每个用户生成时间报告。我唯一的时间跟踪报告选项非常有限,不能做我想做的事,是否可以通过标准功能或免费插件来实现?
6 回答
您可能想查看Tempo Plugin for JIRA timetracking。它提供有关用户、团队、项目和客户级别的时间表、报告和小工具。
如果您不想为简单的操作(例如获取每个用户的时间摘要)支付很多钱。
我发现这个流程很有用:
- 创建一个您喜欢测量的过滤器(我只通过子任务测量时间)
- 导出到excel
- 将其复制并粘贴到谷歌文档电子表格中
- 在谷歌文档中,您可以选择创建数据透视表,因此只需创建一个,其中行是受让人,值是时间
您还可以创建一个计算列来获取以小时为单位的时间(只需将其除以 3600)
希望能帮助到你
使用Better Excel 插件,您可以利用 Microsoft Excel 中的所有报告功能。
此插件将任何类型的 JIRA 数据(包括问题字段和工作日志)导出到自定义 Excel 模板。模板可以对日期范围进行过滤,并且可以在Excel 数据透视表中显示您的报告。如果您需要更多维度(例如按项目、按组件、按周、按月等进行额外分组),这些添加起来非常简单。您还可以在数据透视图中可视化输出。
提示:插件中包含一个默认模板,称为worklog-report.xlsx,可以按原样使用,也可以作为进一步自定义的起点。它看起来像这样(第一个工作表中有一个按项目的数据透视图,但我没有关于它的屏幕截图):
创建模板后,您可以随时单击将其与最新的 JIRA 数据合并,甚至可以自动生成并通过电子邮件发送给您。
免责声明:我是一名开发此付费插件的开发人员。
您可以使用 JIRA 的Everhour插件轻松完成此操作。它允许在给定的日期范围内接收每个用户的综合报告。您可以完全自由地构建报告的任何其他布局,并根据需要添加任意数量的数据列。
如果您使用的是 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 脚本
双击运行脚本