現在、以下のバージョンアップを検証しており、バージョンアップ後にプラグイン(Script Runner>Fragments)内のスクリプトが動作しなくなる問題が発生いたしました。
- Jira(8.20.8→10.3.5)
- Script Runner(6.51.0→9.14)
- JavaScriptでJira課題画面のコメント上にリプライボタンを表示させ、スレッド形式で返信できるようにする機能
プラグイン開発元(Adaptavist社)に確認した結果、Jira8.x→9.xへのアップグレードの仕様変更で課題の読み込みに遅延が入るようになりました。
上記仕様変更に伴い、スクリプトがJira課題が完全にロードされる前に実行されるようになった為、スクリプト内のJIRA.ViewIssueTabs を取得できず結果として未定義となっております。
プラグイン開発元(Adaptavist社)からの回答の詳細は以下になります。
1. サポートログにはエラーが表示されていません
2. Jira 8.20 では正常に動作していたスクリプトが、Jira 10.3.5 では動作しないことを確認しました
3. スクリプトの最後にある JIRA.ViewIssueTabs が条件の入力に失敗しているようです
4. 以下のコードを使用して JIRA.ViewIssueTabs をログに取ろうとしましたが、未定義となっています
console.log("JIRA.ViewIssueTabs: " + JIRA.ViewIssueTabs); console.log("JIRA.ViewIssueTabs.onTabRead: " + JIRA.ViewIssueTabs.onTabRead); if (JIRA.ViewIssueTabs && JIRA.ViewIssueTabs.onTabReady) { console.log("ViewIssueTabs.onTabReady"); JIRA.ViewIssueTabs.onTabReady(init_reply_feature); }
5. Jira バージョン 9 でも同様の問題が発生しています。スクリプトは Jira 課題が完全にロードされる前に実行されているため、JIRA.ViewIssueTabs を取得できず、結果として未定義となっています
6. Jira バージョン 9.0 以降の遅延ロードが原因の可能性があります(参考:https://confluence.atlassian.com/jiracore/preparing-for-jira-9-0-1115661092.html#PreparingforJira9.0-required-updates)
7. 以下のスクリプトを使用して、JIRA.ViewIssueTabs が未定義でなくなるまで取得し続ける方法も試しましたが、問題は解決しませんでした
function waitForTabsAndInit(retries = 30) { if (typeof JIRA !== "undefined" && JIRA.ViewIssueTabs && JIRA.ViewIssueTabs.onTabReady) { console.log("JIRA.ViewIssueTabs available"); JIRA.ViewIssueTabs.onTabReady(init_reply_feature); } else if (retries > 0) { console.log("JIRA.ViewIssueTabs を待機中..."); setTimeout(() => waitForTabsAndInit(retries - 1), 300); } } waitForTabsAndInit();
本件につきまして、解決策(JIRA.ViewIssueTabsを取得できるようにする)方法はございますでしょうか。