在 Jira 中创建报告,显示状态花费的时间
Create report in Jira showing time spent in status
对于客户,我需要创建月度报告,其中显示问题在不同状态(待办事项、进行中、已关闭等)中花费了多少时间。更具体地说,客户希望了解从他们创建问题到我们 "take" 案例并开始处理它需要多长时间。
我很惊讶地发现您无法在 Jiras 默认报告工具中获得此功能。我搜索了相关的附加组件,但大多数报告工具都非常昂贵,我什至不确定它们是否提供此功能。这不是报告中需要的正常指标吗?
但是我找到了 David Bevins Jira Rest Client Dot Net api。不幸的是,api 没有给我机会提取相关数据(时间戳、activity 等)
所以现在我转向了 Jiras rest api,我正在尝试在 .NET 中设置一个程序来完成它。 This guy 完全一样。正如您在他的 SO 问题中所见,返回的 JSON 是一团糟。收集所有正确的数据需要大量的工作。所以在我继续之前,我想知道以前是否有人这样做过,你是怎么做到的?
感谢任何帮助。
Jira 默认没有这个选项,也没有简单的方法来编程解决它。
但是可以获取此数据(但您可能必须使用数据库中的 3 或 4 个表):
1) 创建 jira 插件并在那里解析数据
2) 使用主目录浏览器 (https://marketplace.atlassian.com/plugins/info.renjithv.jira.plugins.sysadmin.homedirectorybrowser/server/overview) 获取数据,然后在您自己的程序中解析它
在 Atlassian Marketplace 上有一个专门用于此功能的插件,它运行良好,有过滤器、时间范围和一些导出选项:
https://marketplace.atlassian.com/plugins/com.obss.plugin.time-in-status/server/overview
您可以免费试用试用版。
我前段时间创建了一个库来从 Jira 中提取指标:
https://bitbucket.org/kaszaq/howfastyouaregoing
据我了解,您正在寻找给定状态下问题的周期时间。我认为这个例子应该对你有帮助:
package pl.kaszaq.howfastyouaregoing.examples;
import com.google.common.collect.Sets;
import java.time.LocalDate;
import java.time.Month;
import java.util.HashSet;
import java.util.OptionalDouble;
import java.util.SortedMap;
import pl.kaszaq.howfastyouaregoing.agile.AgileClient;
import pl.kaszaq.howfastyouaregoing.agile.AgileProject;
import static pl.kaszaq.howfastyouaregoing.agile.IssuePredicates.hasSubtasks;
import pl.kaszaq.howfastyouaregoing.cycletime.CycleTimeComputer;
public class CycleTimeExample {
public static void main(String[] args) {
AgileClient agileClient = AgileClientProvider.createClient();
runExample(agileClient);
}
private static void runExample(AgileClient agileClient) {
LocalDate from = LocalDate.of(2011, Month.JULY, 1);
int daysAverage = 30;
LocalDate to = LocalDate.of(2014, Month.JANUARY, 1);
AgileProject agileProject = agileClient.getAgileProject("MYPROJECTID");
String[] cycleTimeStatuses = {"In Progress", "Ready for Testing"};
final HashSet<String> finalStatuses = Sets.newHashSet("Closed");
SortedMap<LocalDate, Double> cycleTime = CycleTimeComputer.calulcateCycleTime(agileProject, hasSubtasks().negate(), finalStatuses, cycleTimeStatuses);
System.out.println(
"\tCycle time for issues that do not have sub tasks in hours");
for (LocalDate k = from; !k.isAfter(to); k = k.plusDays(daysAverage)) {
OptionalDouble valueOptional = cycleTime.subMap(k.minusDays(daysAverage), k.plusDays(1)).values().stream()
.mapToDouble(val -> val)
.average();
if (valueOptional.isPresent()) {
System.out.println(k + "\t" + valueOptional.getAsDouble());
}
}
}
}
"Get issue rest api" provides historical data once you provide expand=changelog query parameter. It returns json response, see sample reponse。然后你需要解析响应,提取数据并进行计算。
或者您可以尝试为您进行解析和计算的 Marketplace 应用程序。您可以试试 Status Time app,它是为满足这一确切需求而开发的。
还有Status Time Jira app。它提供有关每种状态经过了多少时间的报告。
一旦您将工作日历输入应用程序,它也会考虑您的工作日程。也就是说,周五下午 5 点打开并在周一上午 9 点关闭的问题的“进行中”时间将是几个小时而不是 3 天。它有各种其他报告,如受让人时间、状态输入日期、任何字段的 average/sum 报告(例如,项目的平均进度时间、问题创建月份的平均周期时间)。所有这些也都可以作为仪表板上的小工具使用。
这是online demo link,你可以看到它的实际效果并试试看。
作为免费解决方案,您可以尝试限制版本Status Time Free。
对于客户,我需要创建月度报告,其中显示问题在不同状态(待办事项、进行中、已关闭等)中花费了多少时间。更具体地说,客户希望了解从他们创建问题到我们 "take" 案例并开始处理它需要多长时间。
我很惊讶地发现您无法在 Jiras 默认报告工具中获得此功能。我搜索了相关的附加组件,但大多数报告工具都非常昂贵,我什至不确定它们是否提供此功能。这不是报告中需要的正常指标吗?
但是我找到了 David Bevins Jira Rest Client Dot Net api。不幸的是,api 没有给我机会提取相关数据(时间戳、activity 等)
所以现在我转向了 Jiras rest api,我正在尝试在 .NET 中设置一个程序来完成它。 This guy 完全一样。正如您在他的 SO 问题中所见,返回的 JSON 是一团糟。收集所有正确的数据需要大量的工作。所以在我继续之前,我想知道以前是否有人这样做过,你是怎么做到的?
感谢任何帮助。
Jira 默认没有这个选项,也没有简单的方法来编程解决它。
但是可以获取此数据(但您可能必须使用数据库中的 3 或 4 个表):
1) 创建 jira 插件并在那里解析数据
2) 使用主目录浏览器 (https://marketplace.atlassian.com/plugins/info.renjithv.jira.plugins.sysadmin.homedirectorybrowser/server/overview) 获取数据,然后在您自己的程序中解析它
在 Atlassian Marketplace 上有一个专门用于此功能的插件,它运行良好,有过滤器、时间范围和一些导出选项:
https://marketplace.atlassian.com/plugins/com.obss.plugin.time-in-status/server/overview
您可以免费试用试用版。
我前段时间创建了一个库来从 Jira 中提取指标: https://bitbucket.org/kaszaq/howfastyouaregoing
据我了解,您正在寻找给定状态下问题的周期时间。我认为这个例子应该对你有帮助:
package pl.kaszaq.howfastyouaregoing.examples;
import com.google.common.collect.Sets;
import java.time.LocalDate;
import java.time.Month;
import java.util.HashSet;
import java.util.OptionalDouble;
import java.util.SortedMap;
import pl.kaszaq.howfastyouaregoing.agile.AgileClient;
import pl.kaszaq.howfastyouaregoing.agile.AgileProject;
import static pl.kaszaq.howfastyouaregoing.agile.IssuePredicates.hasSubtasks;
import pl.kaszaq.howfastyouaregoing.cycletime.CycleTimeComputer;
public class CycleTimeExample {
public static void main(String[] args) {
AgileClient agileClient = AgileClientProvider.createClient();
runExample(agileClient);
}
private static void runExample(AgileClient agileClient) {
LocalDate from = LocalDate.of(2011, Month.JULY, 1);
int daysAverage = 30;
LocalDate to = LocalDate.of(2014, Month.JANUARY, 1);
AgileProject agileProject = agileClient.getAgileProject("MYPROJECTID");
String[] cycleTimeStatuses = {"In Progress", "Ready for Testing"};
final HashSet<String> finalStatuses = Sets.newHashSet("Closed");
SortedMap<LocalDate, Double> cycleTime = CycleTimeComputer.calulcateCycleTime(agileProject, hasSubtasks().negate(), finalStatuses, cycleTimeStatuses);
System.out.println(
"\tCycle time for issues that do not have sub tasks in hours");
for (LocalDate k = from; !k.isAfter(to); k = k.plusDays(daysAverage)) {
OptionalDouble valueOptional = cycleTime.subMap(k.minusDays(daysAverage), k.plusDays(1)).values().stream()
.mapToDouble(val -> val)
.average();
if (valueOptional.isPresent()) {
System.out.println(k + "\t" + valueOptional.getAsDouble());
}
}
}
}
"Get issue rest api" provides historical data once you provide expand=changelog query parameter. It returns json response, see sample reponse。然后你需要解析响应,提取数据并进行计算。
或者您可以尝试为您进行解析和计算的 Marketplace 应用程序。您可以试试 Status Time app,它是为满足这一确切需求而开发的。
还有Status Time Jira app。它提供有关每种状态经过了多少时间的报告。
一旦您将工作日历输入应用程序,它也会考虑您的工作日程。也就是说,周五下午 5 点打开并在周一上午 9 点关闭的问题的“进行中”时间将是几个小时而不是 3 天。它有各种其他报告,如受让人时间、状态输入日期、任何字段的 average/sum 报告(例如,项目的平均进度时间、问题创建月份的平均周期时间)。所有这些也都可以作为仪表板上的小工具使用。
这是online demo link,你可以看到它的实际效果并试试看。
作为免费解决方案,您可以尝试限制版本Status Time Free。