見出し画像

Jira Automation でリモートリンクを自動化!実装テクニック

こんにちは、Genです!

先日、私が持っているYouTubeチャンネルコンテンツ「Jira飯」の次回(Vol4, Vol. 5)企画をしております~。なかなか面白い動画になりそうです。

またアップデートありましたら共有いたします。お楽しみに~!

今後コンテンツを増やしてまいりますので、良かったらチャンネル登録よろしくお願いいたします!

さて、今回は 「リモートリンク」設定の自動化についてです。



リモートリンクとは?


Jiraの課題リンクとは別で、Confluenceのページや外部のリンクをチケット画面上にリンクボックスとして表示できる機能です。リンク先がアクセス可能または公開されている場合はアイコンやリンク先のページ名が自動表示されるので便利ですよ!

これをリモートリンクと呼びます

通常はチケット画面上部の [追加] > [既存のConfluenceページ] (外部リンクの場合は [Webリンク]) を選択します。

Confluenceの場合は、スペースでフィルターしたり、候補の中から選択することができます。

リンクさせたいページを選択すると、

このようにチケット上に表示されます。

これ運用で全員でちゃんとやるのはなかなか労力がいるのではないかなと思います。
多分コメントや説明欄にリンク貼っちゃうんですよねー

まぁ別にそれでも良いのかもしれませんが、重めの業務プロセスに関係する場合は、どこに何があるかを明確化する必要があるのでそろえる必要が出てくるケースがあります。

こういったところでリモートリンクの自動設定は有効になるのではないかなと考えます。

さぁ、それではその自動設定処理の実装方法を解説していきますよ!!

※以下の解説では、同一サイト内のConfluenceページのリモートリンクを自動化することを想定した構成をします。
外部リンクを自動設定するにはカスタマイズが必要です。

「リモートリンク」の自動作成!実装テクニック

構成概念

今回実装する自動ページ作成処理のプロセスは以下です:

①Jiraのチケット上から自動化ルールを発動させます
②自動化ルールの処理内で「Webhookの送信」を使って、Jira CloudのAPIをコールします。
③コールされたAPIによって、任意のURL(ここではコンフルエンスページのリンク)をJiraチケットにリンクさせます。

それでは作ってきましょう!

Step0. APIトークンの準備 (Atlassian Account)

前回の記事「Jira Cloud からConfluenceページを生成する方法:実装テクニック - 後編 > Step0. APIトークンの準備 (Atlassian Account) をご参照ください。



Step1. カスタムフィールドの準備 (Jira Cloud)

次に、この後に実装する自動化で使用するフィールドを用意します。

利用するカスタムフィールド

対象サイトに存在しない場合はカスタムフィールドを作成していきましょう。

Page ID(テキスト, 一行):リンクさせる対象のConfluenceページを指定するIDの入力場所です。リンクさせる対象のConfluenceページのIDを保持してAPIコールで使用します。
*ここでは同一サイト内にあるConfluenceのページをリンクさせる想定で記述しています。外部リンクをつける場合はURLのフィールドを作ってAPIコール時のデータに組み込むなどのカスタマイズをしてください。

自動入力・編集する場合は以下の点に注意:

  • 作成時→画面に対象のフィールドがないと自動化で編集できないので作成画面に配置してください

  • 編集時(作成後)→画面にフィールドがなくてもアクターが「Automation for Jira」の場合、特権で編集することが可能です。アクターが個別ユーザーの場合は編集時も編集画面に対象フィールドがないと自動化で編集することはできません。

フィールドが用意できたら、次に「Global ID(app id) 」という情報を取得します。

Step2. globalIdの取得

JiraチケットへのWebリンクを作成するには、以下の情報が必要です:

  1. URL

  2. 表示テキスト

  3. Global ID *インスタンスでユニークなIDです

*これらの情報は、
/rest/api/3/issue/{issueIdOrKey}/remotelink をコールする際に使用します。

Global ID を取得する方法:

以下のURLをブラウザで開くと以下のようなレスポンスデータが表示されます:

https://<yourSite>/rest/api/3/issue/<issueKey>/remotelink
*サイト名と課題(チケット)キーは差し替えてください
*対象の課題にはConfluenceページがあらかじめリンクされている必要があります。

ブラウザで上記のURLを叩くとこんな感じ:

この中の”globalId” の項目に入っている”appId=”に続く値がそのインスタンスでのIDです。(”&pageId=”の前まで)

このIDを記録しておいてください。後で使用します!


Step3. ページ自動生成ルールの構成 (Jira > Automation)

APIトークンを発行→カスタムフィールドを準備→Global ID(App ID)を取得

という流れで準備をしてきました。ここからいよいよ自動化の実装に入っていきます。

トリガーの作成

まず、トリガーを決めます。
今回も同様に「手動トリガー」を使いましょう。

「条件」の追加

後続処理でAPIコールするので、必要な情報が載っているフィールドが空欄だったり二重処理が起きるとエラーの原因になってしまうので、ルールでの条件としてフィールド値のチェックをするように条件を入れてきます。

条件の追加でフィールド条件> 「“Page ID” が空欄でないこと(入力されていること)」 を追加します。

「アクション」の追加(①リモートリンクの自動作成)

次にリモートリンクを生成するAPIを叩くアクションを追加します。アクションは前回紹介したものと同様に「Send WebRequest(Webリクエストの送信)」を使用します。このアクションで設定するデータは前回の記事を同様の項目です。

設定項目の解説は「Jira Cloud からConfluenceページを生成する方法:実装テクニック - 後編 > 3-3: 「アクション」の追加(①Confluenceページ自動作成) をご参照ください

①WebリクエストURL

今回の処理はフィールドで指定したIDを持つConfluenceページをトリガーしたJiraチケットにリモートリンクさせる処理です。

なので、Create or update remote issue link(/rest/api/3/issue/{issueIdOrKey}/remotelink)のAPIを使用します。

書き方としては「https://<yoursitename>.atlassian.net/rest/api/3/issue/{{issue.key}}(対象チケットキー)/remotelink」という形で入力します。

②HTTPメソッド

このAPIでは「POST」を選択します。

③Webリクエスト本文

ここにはリンクしたいURLと表示テキスト、リンク形式などを定義します。まず、データタイプとして「カスタムデータ」を選択します。選択すると入力欄が追加されるので以下の内容を設定していきます:

{
  "globalId": "appId=xxxx(Step1.で取得したID)&pageId={{issue."Page ID"}}",
  "application": {
    "type": "com.atlassian.confluence",
    "name": "System Confluence"
  },
  "relationship": "Wiki Page",
  "object": {
    "url": "https://yoursitename.atlassian.net/wiki/pages/viewpage.action?pageId={{issue."Page ID"}}",
    "title": "Wiki Page"
  }
}

*urlはご自身のサイトアドレスに変更し、appIdのxxxx の部分にStep. 2で取得したIDを入力してください。

カスタムデータが設定できましたら、その下にチェックボックスがあると思います。
ここは「API呼び出しをしてレスポンスが返ってくるまでこのルールでの後続処理を待ちます」という設定なのでチェックをしておきましょう。

④ヘッダー

ヘッダーは3項目設定してきます:

  • Authorization
    ⇨Basic xxxxxxx (API token)  *xxxのところに最初に取得したエンコード済みのAPIトークンを入れます。

  • Accept
    ⇨application/json

  • Content-Type
    ⇨application/json

一通り入力するとこんな感じになるはずです↓

この「アクション」によって、Confluenceページのリモートリンクが自動作成されます。

動かしてみよう

ここまで出来たら、一回動かしてみましょう。
構成中のルールの名前を設定して一旦公開しましょう。
公開できたら、チケットに移動して自動化をトリガーしてみます。
実行するチケット画面上のPage ID に値を設定します。

入力できたら、ステータス右側の [ アクション ] を選択して今回実装した自動化ルールを選択して実行します。

ルール実行後に少し待つと…

お!チケットにConfluenceのリモートリンクが追加されましたね。

入ってきたリンクをクリックして開くと、

ちゃんとポップアップするし、リンクからページに遷移できます。
いい感じです!

この構成を活用すれば、URLフィールドに入力したときに自動でリモートリンクさせたり、リンクが入ったコメントをつけるとそのリンクがリモートリンクとして自動で付くなどバリエーションが広がると思います。

自分の業務フローにフィットした構成を考えてみてくださいね!


今日はここまでにしましょう。
それでは!

いいなと思ったら応援しよう!