LoginSignup
3
2

More than 3 years have passed since last update.

[Bookmarklet] 画面に表示されている一覧内のIssue(チケット/課題)を新しいタブで一気に開く(GitHubとBacklogに対応)

Posted at

テスト中に修正確認するとき、私は以下の流れで行っています。

  1. 新しいブラウザを開く
  2. 確認したいIssueを新しいタブで全部開く
  3. 1件ずつ確認し、確認が終わったらタブを閉じる

タブを全部閉じる = ウィンドウが閉じるので終わった後いい感じの達成感があります。
しかし確認したいIssueが多いとき、Step.2の作業がかなりめんどくさいので、一覧に表示されているIssueをすべて新しいタブで開くというBookmarkletを作りました。
普段業務ではGithubとBacklogを使っているのでこの2つのみ対応しています。

※ チケット = Issue、課題、バグ票、などのこと。
※ 修正確認: 開発者が修正完了したチケットをテストチームが確認することをそう呼んでいます。
私のところでは、テストチームがバグを見つけるとIssueを書き、開発者がIssue対応を行い、対応後はテストチームが再確認し、問題なければIssueを閉じるというフローをとっています。

使い方

  1. ブラウザを起動する(Chromeのみ動作確認済み)
  2. ブックマークマネージャーを起動する
  3. 新しいブックマークを作成で以下を入力し保存する
    ・ ブックマーク名: 任意のもの
    ・ URL: 下記のコード
  4. Github: Issue一覧、またはBacklog: 課題一覧を表示する
  5. Step.3で登録したブックマークをクリックする

ソースコード

javascript:
(function(){
    var url = location.href;
    if(url.match(/github\.com[\w-./%]*\/issues/)){
        /*GitHub用*/
        document.querySelectorAll('a[data-hovercard-type="issue"]').forEach((v) => {
            window.open(v.href, v.href);
        });
    }
    else if(url.match(/backlog\.[\w-%]*\/find/)){
        /*Backlog用*/
        var space_url = url.match(/https:\/\/[\w-%]*\.backlog\.[\w-%]*\//); 
        var elm = document.querySelectorAll('td[data-column-name="issueKey"]');
        var result = true;
        if(elm.length > 25)result = confirm( elm.length + '個のタブが開きます。本当に開きますか?');
        if(result){
            elm.forEach((v) => {
                var issuekey = v.getElementsByTagName('a')[0].text;
                window.open(space_url + 'view/'+issuekey,issuekey);
            });
        }
    }   
}())

実行結果

こんな感じです。
f2d9a6490613e75d6e40410397adad1b.gif

補足

※ 初回実行時は「ポップアップがブロックされました」となる可能性があるので、許可する必要があります
スクリーンショット 2019-08-19 8.03.57.png

※ Backlogの場合、課題を26件以上開くときは警告Alertが出ます。
└ Backlogは1ページに最大100件の課題を表示できるので。
※ GitHubはIssueが何件だろうと警告Alertは出ません。
└ GitHubは1ページに最大25件までしか表示できないので。

Backlogで試しに50件開いてみたところ、私のPCではさすがに時間がかかりました。。。
これなら1件ずつ開いたほうがストレスがないので、26件以上開く場合は一応警告をつけました。

また、Backlogでは課題一覧に表示されている課題のリンクを開いた場合、1つの課題が表示されるまでに時間がかかるようです。
リダイレクトされるのが原因かと思ってます。
なので、課題一覧では課題番号を取得し、課題のURLを生成して直接叩くようにしました。
GitHubのと同じ感じの記述でも動きますが、↑にしたほうが体感早くなりました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2