IBM Cloudで、Jira Cloud REST APIを叩く


Jira Cloud REST APIとIBM Cloud

Jira SoftwareやConfluence、Jira Service Deskのクラウド版に無料プランが登場し、Jira Software クラウド版 Free プランの申し込み手順について記事にしました。
Jira Cloud REST APIを操れるようになると、AIやIoT、ブロックチェーンなどと組み合わせることができます。
そこで、クレジットカード不要なIBM Cloud ライト・アカウント上で無料で使えるNode-REDを用いて、Jira Cloud REST APIを用いて、チケット(Jira用語では課題と言う)を起票する手順について説明します。

なぜNode-RED?

市場には、iPaaS(integration Platform-as-a-Service)製品やサービスが幾つもありますが、クラウド、オンプレミス、組み込み機器などどこでも動き、業務アプリケーションの他にAIやIoT、ブロックチェーンなどまとめてサポートしているものは少なく、産業用IoTというカテゴリで言えば、主要企業のサービスでは、Node-REDが採用されています。(参考資料:http://www.mstc.or.jp/iaf/event/2019f/07yokoi.pdf)

AI分野では、IBM Watsonや Microsoft Cognitive Services、Google Assistant、TensorflowベースのAIサービス等と接続できるため、プロジェクト管理やタスク管理、サービスデスクなどの業務アプリケーションを、AIやIoTと連携しようとすると、Node-REDが有力な候補になります。

準備

Jira Software クラウド版 Free プランの申し込み手順を参考に、クラウド版 Jira Software環境を用意し、APIトークンを発行しておきます。
関連資料 https://ja.confluence.atlassian.com/cloud/api-tokens-938839638.html

Node-RED上で、Jira Software クラウド版にチケット(課題)を起票

Node-RED上で、シンプルなフローを作ります。

1つ1つ設定を見ていきます。

異常値を検知しました

injectノードを使用しています。injectノードの左端の四角のボタンを押すと処理が開始されます。
設定は、下図のように、ペイロードに文字列として「異常値を検知しました。」という警告文をセットしています。

issue data

functionノードを使用しています。手前で発信された文字列をsummaryに挿入するとともに、Jiraに起票するためのデータを生成しています。Jira Software クラウド版 Free プランの申し込み手順で説明しているように、Jiraを使うには、プロジェクト作成が必須です。Projectのキーを、ここでは「IOT」としていますが、皆様が作成した各自のプロジェクトキーに読み替えてください。

"fields": {
            "project":{"key":"IOT"},

http request

http requestノードを使用しています。
「メソッド」に「POST」、「URL」にJira Software クラウド版を登録した際のサイト名(Site name)を用い、/rest/api/2/issue を追加しています。
また、「認証の使用」にチェックを入れ、次のように値をセットしています。
- 種別 : Basic認証
- ユーザー名 : Jira Software クラウド版へのログインメールアドレス
- パスワード : ユーザー名のメールアドレスで取得したAPIトークン

msg

debug ノードを使用し、対象をオブジェクト全体としています。

動作確認

設定後、画面右上の「デプロイ」ボタンをクリックします。
「異常値を検知しました」と表示されている「inject」ノードの左端の四角のボタンを押すと処理が開始されます。
虫型のアイコンをクリックすると「デバッグ」タブにて、実行結果を確認できます。また、クラウド版のJira Softwareのお使いの環境に、Node-REDで、Jira Cloud REST APIを用いて作成されたチケット(=課題)が起票されているはずです。

活用例

これらの仕組みは、クラウド版ではなくサーバー版のJira Softwareになりますが、昨年開発しました『在宅ケアを想定した自動発報および可視化システムのPoC』では、センサーの異常値を検知し、Jiraに確認を指示するチケット(課題)を自動起票する仕組みに使っています。