18

抱歉,如果 SO 不是最好的地方,但我在 JIRA 中启用了时间跟踪,并且希望能够在给定的日期范围内为每个用户生成时间报告。我唯一的时间跟踪报告选项非常有限,不能做我想做的事,是否可以通过标准功能或免费插件来实现?

4

6 回答 6

6

您可能想查看Tempo Plugin for JIRA timetracking。它提供有关用户、团队、项目和客户级别的时间表、报告和小工具。

于 2011-05-05T14:24:21.730 回答
3

这个怎么样:

https://plugins.atlassian.com/plugin/details/294

于 2010-05-01T14:08:51.940 回答
2

如果您不想为简单的操作(例如获取每个用户的时间摘要)支付很多钱。

我发现这个流程很有用:

  1. 创建一个您喜欢测量的过滤器(我只通过子任务测量时间)
  2. 导出到excel
  3. 将其复制并粘贴到谷歌文档电子表格中
  4. 在谷歌文档中,您可以选择创建数据透视表,因此只需创建一个,其中行是受让人,值是时间

您还可以创建一个计算列来获取以小时为单位的时间(只需将其除以 3600)

希望能帮助到你

于 2012-01-23T21:10:57.570 回答
0

使用Better Excel 插件,您可以利用 Microsoft Excel 中的所有报告功能

此插件将任何类型的 JIRA 数据(包括问题字段和工作日志)导出到自定义 Excel 模板。模板可以对日期范围进行过滤,并且可以在Excel 数据透视表中显示您的报告。如果您需要更多维度(例如按项目、按组件、按周、按月等进行额外分组),这些添加起来非常简单。您还可以在数据透视图中可视化输出。

提示:插件中包含一个默认模板,称为worklog-report.xlsx,可以按原样使用,也可以作为进一步自定义的起点。它看起来像这样(第一个工作表中有一个按项目的数据透视图,但我没有关于它的屏幕截图):

在此处输入图像描述

创建模板后,您可以随时单击将其与最新的 JIRA 数据合并,甚至可以自动生成并通过电子邮件发送给您

免责声明:我是一名开发此付费插件的开发人员。

于 2015-07-08T14:00:17.003 回答
0

您可以使用 JIRA 的Everhour插件轻松完成此操作。它允许在给定的日期范围内接收每个用户的综合报告。您可以完全自由地构建报告的任何其他布局,并根据需要添加任意数量的数据列。

Jira 示例报告 - Everhour

于 2017-04-27T15:00:43.477 回答
0

如果您使用的是 Windows,则可以运行以下 powershell 脚本将数据提取到 CSV 文件。

## 指示 ##

  1. 打开 Powershell ISE(已安装到所有 Windows 7 及更高版本的 PC)

  2. 创建一个新的 PowerShell 脚本 (ctrl+n)

  3. 将以下代码块中的文本粘贴到新文件中


##################################################################
# 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

  1. 修改文件开头的变量

  2. 在 PC 上的某个位置另存为 powershell 脚本

  3. 双击运行脚本

于 2017-05-12T04:38:19.630 回答