SOが最適な場所ではない場合は申し訳ありませんが、JIRAでタイムトラッキングを有効にしており、特定の日付範囲で各ユーザーのタイムレポートを生成できるようにしたいと考えています。私が持っている唯一のタイムトラッキングレポートオプションは非常に限られており、私が望むことをしません。それはおそらく標準機能または無料のプラグインを通して可能ですか?
6 に答える
JIRAタイムトラッキング用のTempoプラグインを確認することをお勧めします。ユーザー、チーム、プロジェクト、および顧客レベルのタイムシート、レポート、およびガジェットを提供します。
ユーザーごとの時間の要約を取得するなどの単純なアクションに多額のお金を払いたくない場合。
このフローは便利だと思いました。
- 測定したいフィルターを作成します(私はサブタスクによってのみ時間を測定します)
- エクセルにエクスポートする
- コピーしてGoogleドキュメントスプレッドシートに貼り付けます
- Googleドキュメントでは、ピボットテーブルを作成するオプションがあるため、行が担当者であり、値が時間であるピボットテーブルを作成するだけです。
計算列を作成して時間を時間単位で取得することもできます(3600で割るだけです)
それが役に立てば幸い
Better Excelプラグインを使用すると、MicrosoftExcelのすべてのレポート機能を利用できます。
このプラグインは、あらゆる種類の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スクリプトとして保存します
スクリプトをダブルクリックして実行します