1

我们使用 JIRA 来跟踪问题。我必须制作一份关于不同项目组中未解决问题数量的月度报告。我为每个组创建了过滤器。我想创建一个仪表板,显示:

  1. 每个过滤器报告的问题数量,最好不显示问题列表。
  2. 各种过滤器集的总计。

最好的方法是什么?可以在不编写我自己的报告或小工具的情况下完成吗?

4

2 回答 2

1

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

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

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

    不用双引号,只用单引号。“ => '</p>

  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);
于 2021-08-04T18:27:02.810 回答
0

您可以使用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获取统计信息。

于 2013-03-12T18:38:27.843 回答