如何显示或报告来自多个JIRA过滤器的问题数量?

时间:2013-03-08 16:00:35

标签: jira

我们使用JIRA来跟踪问题。我必须每月报告各组项目的未决问题数量。我为每个组创建了过滤器。我想创建一个显示:

的仪表板
  1. 每个过滤器报告的问题数量,最好不显示问题列表。
  2. 各种过滤器的总计。
  3. 最好的方法是什么?可以在不编写我自己的报告或小工具的情况下完成吗?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。对于那个问题,我创建了一个函数来获取每个 Jira 查询的问题总数,如下所示。

  1. 创建一个新的电子表格(在谷歌表格中)

  2. 从上到下列出您自己的 Jira 查询/过滤器,不带双引号。

    用单引号代替双引号。 “ => '

  3. 将此电子表格下载/导出为 CSV 文件。

  4. 现在返回您的 Jira => 高级搜索页面,然后打开检查和控制台 https://yourprojectdomainname.atlassian.net/issues/?jql=

  5. 将以下代码复制并粘贴到控制台中。

  6. 调用此函数后,将出现“选择文件”输入。

  7. 点击“选择文件”输入并选择您刚刚下载的 csv 文件。

  8. 一旦您选择它,就会自动触发 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);

答案 1 :(得分:0)

您可以使用Jira's remote API使用REST API进行搜索example

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调用,并向屏幕显示您需要的内容。比使用Text Gadget将此页面添加到仪表板。

更有效的方法可能是每5分钟左右运行一次cron作业,创建此页面,将其保存到Jira的web目录,而不是使用ajax调用来获取文件内容并将其显示在屏幕上。如果您选择此解决方案,则可以使用Jira's CLI来获取统计信息。