我们使用 JIRA 来跟踪问题。我必须制作一份关于不同项目组中未解决问题数量的月度报告。我为每个组创建了过滤器。我想创建一个仪表板,显示:
- 每个过滤器报告的问题数量,最好不显示问题列表。
- 各种过滤器集的总计。
最好的方法是什么?可以在不编写我自己的报告或小工具的情况下完成吗?
我们使用 JIRA 来跟踪问题。我必须制作一份关于不同项目组中未解决问题数量的月度报告。我为每个组创建了过滤器。我想创建一个仪表板,显示:
最好的方法是什么?可以在不编写我自己的报告或小工具的情况下完成吗?
我有一个类似的问题。对于那个问题,我创建了一个函数来获取每个 Jira 查询的问题总数,如下所示。
创建一个新的电子表格(在谷歌表格中)
从上到下列出您自己的 Jira 查询/过滤器,不带双引号。
不用双引号,只用单引号。“ => '</p>
将此电子表格下载/导出为 CSV 文件。
现在回到您的 Jira => 高级搜索页面,然后打开检查和控制台 https://yourprojectdomainname.atlassian.net/issues/?jql=
将以下代码复制并粘贴到控制台中。
调用此函数后,将出现“选择文件”输入。
单击“选择文件”输入并选择您刚刚下载的 csv 文件。
选择后,Jira 查询将自动触发并列出问题数量。
完成后,您将能够将它们复制并粘贴到报告电子表格的下一列中。
$("#search-header-view").after('<input type="file" id="the-file-input" /><div id="theContainer"></div>');
console.log("Author: MertKGursoy");
function theReader(e) {
var file = e.target.files[0];
if (!file) {
return;
}
var reader = new FileReader();
reader.onload = function(e) {
var cont = e.target.result;
theParsed(cont);
};
reader.readAsText(file);
}
function theParsed(cont) {
const json = cont.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
var theText = JSON.stringify(json);
theText = theText.replace(/\[/g, "");
theText = theText.replace(/\]/g, "");
theText = theText.replace(/\\n/g, "");
theText = theText.replace(/\\r/g, '", "');
theText = theText.replace(/\\/g, '"');
var str = theText;
var str_array = str.match(/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g);
var theLength = str_array.length + 1;
for(var i = 0; i < theLength ; i++) {
delay(i);
}
function delay (i) {
setTimeout(() => {
str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
var jqlQuery = str_array[i];
var withoutdoublequotes = jqlQuery.replace(/\"/g, '');
var text = document.getElementById('advanced-search');
text.value = withoutdoublequotes;
var jqlValue = document.getElementById("jql").value;
$(".aui-button-primary").trigger("click");
if (withoutdoublequotes) {
setTimeout(() => {
var resultValue = $('.results-count-total').first().text();
if (resultValue) {
$("#theContainer").append(resultValue + '<br>');
} else {
resultValue = "0";
$("#theContainer").append(resultValue + '<br>');
}
}, 3000);
} else {
setTimeout(() => {
resultValue = "-";
$("#theContainer").append(resultValue + '<br>');
}, 3000);
}
},i * 6000);
}
}
document.getElementById('the-file-input').addEventListener('change', theReader, false);
您可以使用Jira 的远程 API进行搜索,例如使用 REST API:
curl -D- -u fred:fred -X GET -H "Content-Type: application/json" http://kelpie9:8081/rest/api/2/search?jql=assignee=fred
编写一个 html 页面,对 API 进行 ajax 调用,并在屏幕上显示您需要的任何内容。比使用文本小工具将此页面添加到仪表板。
一种更有效的方法可能是每 5 分钟左右运行一次 cron 作业,创建此页面,将其保存到 Jira 的 web 目录,而不是使用 ajax 调用来获取文件内容并将其显示到屏幕上。如果您选择此解决方案,您可以使用Jira 的 CLI获取统计信息。