Wie viele gesagt haben, gibt es keine direkte Möglichkeit. Wenn Sie jedoch den Suchraum effizient eingrenzen, ist es nicht so schlimm. Die folgenden PHP-Code läuft recht schnell auf meinem Setup, aber natürlich, die Leistung kann variieren:
<?php
$server = 'jira.myserver.com';
$fromDate = '2012-01-01';
$toDate = '2012-01-31';
$project = 'X';
$assignee = 'bob';
$username = 'my_name';
$password = 'my_password';
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
# Give me up to 1000 search results with the Key, where
# assignee = $assignee AND project = $project
# AND created < $toDate AND updated > $fromDate
# AND timespent > 0
curl_setopt($curl, CURLOPT_URL,
"https://$server/rest/api/2/search?startIndex=0&jql=".
"assignee+%3D+$assignee+and+project+%3D+$project+".
"and+created+%3C+$toDate+and+updated+%3E+$fromDate+".
"and+timespent+%3E+0&fields=key&maxResults=1000");
$issues = json_decode(curl_exec($curl), true);
foreach ($issues['issues'] as $issue) {
$key = $issue['key'];
# for each issue in result, give me the full worklog for that issue
curl_setopt($curl, CURLOPT_URL,
"https://$server/rest/api/2/issue/$key/worklog");
$worklog = json_decode(curl_exec($curl), true);
foreach ($worklog['worklogs'] as $entry) {
$shortDate = substr($entry['started'], 0, 10);
# keep a worklog entry on $key item,
# iff within the search time period
if ($shortDate >= $fromDate && $shortDate <= $toDate)
$periodLog[$key][] = $entry;
}
}
# Show Result:
# echo json_encode($periodLog);
# var_dump($periodLog);
?>
Es ist eine Schande Jira nicht so Grundzug durch API unterstützt. –
Ich habe gerade festgestellt, dass Ihre Methode nicht funktionieren wird und es scheint tatsächlich keine praktikable Lösung zu geben (abgesehen davon, ALLE Probleme in der Geschichte durchzugehen, die nicht durchführbar sind). Das Problem ist, dass Ihre Lösung nur funktioniert, wenn Ihr TO_DATE jetzt ist. Sie können diese Methode nicht für den Zeitraum in der Vergangenheit verwenden, da Probleme, die nach Ihrem TO_DATE aktualisiert wurden, nicht gezählt werden, obwohl sie möglicherweise Worklogs haben.Ein weiteres Problem ist, dass Jira erlaubt, Arbeitszeiten zu anderen Daten als JETZT einzugeben. Eine Abfrage zum Filtern von Aufgaben, die in dem gegebenen Zeitraum aktualisiert wurden, wird dann nicht funktionieren. –