tohokuaikiのチラシの裏

技術的ネタとか。

JIRAの作業履歴を日別に出す方法(自前JavaScriptで)

フツーはtempoプラグインを使えって話なんですが…まぁ。

対象になるページ

http://jira.example.jp/projects/PRJECTID/issues/
のページをChromeFirefoxなんかで開く。

ここ。
f:id:tohokuaiki:20190402172906p:plain

このConsoleから下記のJavaScriptを入力する。

(function($){
    var output = "";
    var doList = function() {
        var ret = "";
        $('.issuePanelWrapper').find('.actionContainer').each(function(i, ac){
            var job = '', times = '';
            var date = $(ac).find('span.date').text().substring(0, 10);
            $(ac).find('ul.item-details').each(function(i, ul){
                times = $.trim($(ul).find('.worklog-duration').text());
                job   = $.trim($(ul).find('.worklog-comment').text());
                job = job.replace(/[\r\n]/g, "");
            });
            ret += date + "\t" + times + "\t" + job + "\n";
        });
        return ret;
    }
    
    var issues = $('.search-results a.splitview-issue-link');
    var i = -1;
    var timer = setInterval(function(){
        if (i >= 0){
            $(issues.get(i)).each(function(i, a){
                output += $.trim($('h1#summary-val').text()) + "\n";
            });
            output += doList();
        }
        i++;
        $(issues.get(i)).trigger('click');
        if (i >= issues.length){
            clearInterval(timer);
            console.log(output); 
        }
    }, 3000);
})(jQuery)

何となく、サーバーのレスポンスが速ければIntervalの3000を1000とかにしたりして。