1. はじめに
Jira Service Management に対して、REST API を用いて Azure 環境から自動起動させる方法を検証してみました。ロジックアプリにはJira 標準コネクタも提供されていますが、カスタマイズが利かないようなので REST API でのチケット作成も活用出来れば応用技が利くようになります。
2. 前提条件
前提条件は以下の通りです。
- Jira Service Management で RESTAPI キーが発行されていること(※発行するユーザーも紐づけで必要)
2. 試してみる
2.1 Powershell
コードサンプル
RESTAPI では Jira への認証方法として (ユーザー名):$(APIキー)
フォーマットで base64 エンコードされた情報を認証ヘッダに用います。
# 認証情報の設定
$UserName = "(Jira ユーザー名)"
$ApiToken = "(Jira API キー)"
$pair = "${UserName}:${ApiToken}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
# リクエストヘッダーの設定
$Headers = @{
"Authorization" = "Basic $base64"
"Content-Type" = "application/json"
}
# チケットデータの作成
$body = @{
fields = @{
project = @{
key = "AAAA" # (必須)プロジェクトキー
}
summary = "PowerShellによる自動生成テスト" # (必須)チケットのタイトル
description = "このチケットはPowerShellスクリプトで自動生成されました。" # チケットの詳細
issuetype = @{
name = "[System] Incident" # (必須)課題タイプ
}
priority =@{
name = "High" # 優先度(任意)
}
assignee =@{
name = "(Jira ユーザー名)" # 自動アサインする担当者(任意)
}
labels = @("Security", "Test") # ラベル(任意)
customfield_10097 = "https://www.yahoo.co.jp" # カスタムフィールド
}
} | ConvertTo-Json -Depth 10 # JSON形式に変換
# APIエンドポイントの設定
$JiraUrl = "https://(Jira インスタンス名).atlassian.net/rest/api/2/issue"
# POSTリクエストの送信
$response = Invoke-RestMethod -Uri $JiraUrl -Headers $Headers -Method Post -Body $body
# レスポンスの確認
if ($response) {
Write-Host "チケットが作成されました: $($response.key)"
} else {
Write-Host "チケット作成に失敗しました。"
}
通知例
Summary, Description, Priority, Labels, カスタムフィールド(今回は URL で設定)が反映されていることが分かります。
4.2 ロジックアプリ
設定例
RESTAPI を同じようにロジックアプリで設定した例です。
参考資料