Script Runner for Jira 超入門

リックソフトブログ

2022年04月26日

Script Runner for Jira 超入門

Author

小林 香菜子 kanako kobayashi

小林 香菜子</mt:Var>

  

こんにちは。
エンジニアの小林です。

今回はアトラシアンの大人気アプリ「ScriptRunner for Jira」について、「Javaなどでプログラミングは少ししたことがあるけどJiraのAPIを使うのは初めて!」という方向けに、ScriptRunnerを使った開発の入門的な内容をご紹介します!

■Script Runner for Jira とは?

Jiraのアプリです。Jiraのワークフロー・カスタムフィールドなどで行いたい処理を、Groovy言語(Javaと同じように書けるスクリプト言語)で記述することができます。

柔軟なカスタマイズができるのがメリットですが、保守の手間はかかります。

■はじめの一歩

まずは Script Console 機能を使って簡単なスクリプトを実行してみます。

ScriptRunner を インストールした Jira で、管理画面 > アプリを管理 > ScriptRunner > Console に進みます。
(または、ggショートカットキーで管理画面検索ダイアログを開き、Script Console と入力します)


Scriptエディタに下記コードを入力して「Run」をクリックします。

Script
return "test"

Resultタブに下記のように表示されます。

Result
test

このように、 Script Console では実行したプログラムの戻り値が Result タブに出力されます。

■ログ出力

次に、ログを出力してみます。

エディタに下記コードを入力して実行してみましょう。

Script
log.warn("test")

Logs タブに下記のようなログが出力されます。

Logs(例)
2020-04-11 08:19:49,253 WARN [runner.ScriptBindingsManager]: test

自分で書いたコードがうまく動かない時は、この方法でログを出力してデバッグできます。

■JiraのAPIを使ってみる

JiraのJava API を使って簡単なスクリプトを実行してみます。

Jiraの課題キーから、課題の要約を取得してみましょう。

下記コードの XXXXX の部分を適当な課題キーに置き換えて、実行してみてください。

Script
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
IssueManager issueManager = ComponentAccessor.getIssueManager();
Issue issue = issueManager.getIssueObject("XXXXX");
return issue.getSummary();

Resultタブに課題の要約が出力されます。


【解説】

JiraのAPIドキュメントを見ながら確認してみてください。

確認する


【ComponentAccessor】

その名の通り、ComponentAccessorを使うとJiraのコンポーネントを取得できます。

コンポーネントとは何なのか気になりますが、とりあえず今は置いておきましょう。
今回使った IssueManager など XXXManager を使いたい時は、このComponentAccessorから取得できることが多いです。

【IssueManager】

issue(課題)に関する様々な処理を行ってくれるクラスです。

今回は ComponentManager を使って取得しました。


【Issue】

Jiraのissue(課題)です。
今回は、issueManager を使って指定した課題キーの課題を取得しました。

ちなみに、GroovyではJavaと違って型宣言などを省略しても動きます。例えば下記コードでも同じことができます。

import com.atlassian.jira.component.ComponentAccessor
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject("SP-1")
return issue.summary

練習1 Jiraの課題キーから、課題の報告者を取得してみましょう。

import com.atlassian.jira.component.ComponentAccessor
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject("SP-1")
return issue.reporter.name

練習2 Jiraのプロジェクトキーから、プロジェクト名を取得してみましょう。

ヒント
ProjectManager を使ってみましょう。

XXX:プロジェクトキー

import com.atlassian.jira.component.ComponentAccessor
def projectManager = ComponentAccessor.getProjectManager()
def project = projectManager.getProjectByCurrentKey("XXX")
return project.name

■ワークフローをカスタマイズしてみる

ScriptRunner の機能を使って、ワークフローの事後操作を設定してみます。

プロジェクト管理画面 > ワークフロー から ワークフローを編集します。
適当なトランジションに事後操作を追加します。

ScriptRunner をインストール済みのJiraの場合、「Script Post-Function」という事後操作を追加することができます。

「Script Post-Function」には、自身で一からスクリプトを書く必要がある「Custom script post-function」の他にも、ビルトインの事後操作が用意されています。

今回は、「Custom script post-function」を選択します。

■ログ出力

まずは試しに、トランジションされた課題の課題キーをログに出力してみます。

「Inline script」エディタにスクリプトを入力します。

log.warn(issue.key)

ここで「issue」という変数は、ScriptRunner側で用意している、宣言なしで使える変数です。

参考

スクリプトを保存し、ワークフローを発行したら、適当な課題をトランジションしてみます。

■ログ確認

設定した事後操作が実行されたことを確認するため、ログを見てみます。
ログを確認する方法はいくつかありますが、ここでは、ScriptRunnerの機能を使って確認します。

gg ショートカットキーでJira管理画面検索ダイアログを開き、「Browse ScriptRunner」へ移動します。

ここでは、ScriptRunner側で用意されている様々な処理を実行することができます。
今回はサーバーのログを確認したいので、検索フォームに「server」と入力し、「View server log files」を選択します。

atlassian-jira.log の中身を出力します。

課題キーが出力されている行があるかどうか探してみてください。

2020-06-24 05:06:02,706+0000 http-nio-8080-exec-13 WARN admin 306x6150x1 12ws3kp 192.168.33.1 /secure/WorkflowUIDispatcher.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] SP-1

■Jira課題を編集する

次に、課題がトランジションされたら自動的に「説明」を変更するような事後操作を設定してみます。

先ほど設定した Custom script post-function を修正します。

issue.setDescription("Hello!")

この setDescription() は、IssueのサブインターフェースMutableIssueで定義されているメソッドです。

スクリプトを保存し、ワークフローを発行したら、実際に課題をトランジションして確認してみます。

練習3 ワークフローの事後操作で、テキストフィールド(一行)カスタムフィールドに値を入力してみましょう。

サンプル

いかがでしたでしょうか?
Jiraを標準機能よりもさらにカスタマイズしたい方におすすめのアプリです。
おすすめリンク集を参考に、ぜひ使ってみてくださいね。

■おすすめリンク集

                                   

製品について詳しくはこちらをご覧ください。

ScriptRunner for Jira

関連する製品についてはこちらをご覧ください。

Jira Software

Jira Softwareを試してみたい方はこちら。

Jira Software 無料トライアル                 
                                                             

本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。

        

お問い合わせ         

  
本ブログのカテゴリ: Jira 気になるアドオンシリーズ

カテゴリ一覧

最近の記事

年別アーカイブ

  

アトラシアン製品の導入と活用を
成功させたいなら
リックソフトのサポートが
必要です。

サードパーティ製のアドオンもサポート

サードパーティ製のアドオンもサポート

RS標準サポート

アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのRS標準サポートではサポートします。

  • アトラシアン製品とサードパーティ製のアドオンとの事象の切り分け
  • 海外のアドオンベンダーとのやり取りを代行(日→英/英→日)

リックソフトのRS標準サポートは開発元が提供するサポート以上の価値があります。

サポートについて

ツールの活用を促進するアイテム

ツールの活用を促進するアイテム

各種ガイドブック

ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。

リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。

ガイドブックについて

価値あるツールの使い方

価値あるツールの使い方

研修・トレーニング

ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。

日本随一の生産性向上にも効果のある研修サービスです。

リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。

研修について

PAGE TOP