2023年03月13日
【データセンター版Jira Software】 REST APIでJira課題を検索・作成するっくま!南澤 華代 Hanayo Minamisawa
--この記事は、データセンター版のJira Softwareを利用している方に向けた内容です--
こんにちは! 僕はりっくまです。
社内システム開発担当者から、他のシステムからJira課題の検索や作成をしたいけど、JiraはREST APIが使えるのかヘルプデスクへ確認して~と頼まれたクマ。
僕、REST APIって初耳でなんのことかよくわからないクマ!
僕にわかるように説明してほしいクマ!
今回のりっくまさんの質問は、高度な内容ですね。
まず答えから言いますと、JiraにはREST APIが用意されていますので、REST APIを使用してJiraの課題の検索や作成は可能です。
社内システム開発者の方へは、以下のJiraのREST APIリファレンスや利用例を渡してもらえれば開発できると思います。
さてこれから、りっくまさんのようにREST APIって何?という方に向けて、REST APIを使ってJiraを操作する利用例を紹介します。
REST API を利用すると、HTTP メソッドの POST / PUT / GET / DELETE を使って、データの「追加、更新、検索、削除」操作ができます。
Jiraの場合も、REST APIを利用すると、追加(例:課題の作成)、更新(例:課題の編集)、検索(例:希望の課題を検索して取得する)、削除(例:課題の削除)といった操作ができるのです。
このように説明してもピンとこないかもしれません。
りっくまさんのように初めてREST APIを知った方は、Jiraアプリケーション以外から Jiraの操作ができる呪文(魔法のURL)とでも思ってください。
つづけて実際にJiraでREST APIを使用した利用例を紹介します。
例として りっくま(rickuma)が担当者になっている課題を取得してみましょう。
Jiraの検索画面でこの条件で検索すると、以下のように4件ヒットするような結果になります。
つづけて、上記をREST APIで取得する方法を考えてみましょう。
REST APIでJira課題を検索して結果を取得する場合は、JIRA Server platform REST API referenceを見ると、 /rest/api/2/searchのGETメソッドでできそうなことがわかります。
JIRA Server platform REST API referenceには指定できるパラメータも記載されています。 今回の例では、以下のパラメータを使ってみます。
パラメータ | 型 | 設定する値 | 説明 |
---|---|---|---|
jql | string | assignee in (rickuma) (rickumaが担当している課題) | JQL文字列 (Jiraの検索で利用できる検索言語。例えば、「status = closed」でステータスがクローズの課題を検索できる。) |
maxResults | int | 40件 | 結果を返す課題の上限数。50件がデフォルト。 |
fields | string | 要約、担当者、期限 | 課題から取得したいフィールドをカンマ区切りで指定できる |
以上を踏まえると、課題を取得できるURLは以下になります。
(JiraのベースURLは、http://192.168.56.103:8080/jira です)
http://192.168.56.103:8080/jira/rest/api/2/search?maxResults=40&fields=summary,assignee,duedate&jql=assignee=rickuma
ためしにこのURLをブラウザで参照してみましょう。
Firefoxの場合だと、以下のようにJSONフォーマットで見やすい状態で参照できます。
課題の取得件数は4件(青いバーのtotalの数値)で、Jira検索画面の結果件数と一致しています。
それから、取得したいフィールドも課題ごとに取得できていることもわかります。
また、これを Linux の curl コマンドで実行する場合は下記の通りとなります。admin:password は Jira にログイン可能で課題の閲覧権限を持つ ユーザー名(admin)とパスワード(password)です。
1
2
3
4
5
6
|
# curl \ -D- \ -u admin:password \ -X GET \ -H "Content-Type: application/json" \ http://192.168.56.103:8080/jira/rest/api/2/search?maxResults=40&fields=issuekey,summary,assignee,duedate&jql=assignee=rickuma |
今度は、REST APIを使ってJira課題を作ってみましょう。
ためしに以下の情報で課題を作ってみます。
項目名 | 値 |
---|---|
プロジェクト | RSKUMA (りっくまプロジェクト) |
要約 | りっくまブログ 2018/5 作成 |
課題タイプ | タスク |
担当者 | rickuma (りっくま) |
報告者 | meganekuma (めがねっくま) |
優先度 | Medium |
説明 | 2018年リックソフトブログに掲載する内容を作成してください。 |
上記情報をJSONファイルにすると以下のようになります。
createissue.json の内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{ "fields":{ "project":{ "key":"RSKUMA" }, "summary": "りっくまブログ 2018/5 作成", "issuetype": { "name": "Task" }, "assignee": { "name": "rickuma" }, "reporter": { "name": "meganekuma" }, "priority": { "id": "3" }, "description": "2018年リックソフトブログに掲載する内容を作成してください。" } } |
このJSONファイルを作業ディレクトリに保管し、そこで以下のCurlコマンドを実行して、Jiraへ情報をPOSTします。
1
2
3
4
5
6
7
|
# curl \ -D- \ -u admin:password \ -X POST \ --data @createissue.json \ -H "Content-Type: application/json" \ http://192.168.56.103:8080/jira/rest/api/2/issue/ |
Curlコマンド実行後の結果は次のようになります。SENなど一部情報はマスクしています。
最後の一行は、実行結果で、課題ID「10400」課題キー「RSKUMA-6」で課題作成できているという意味です。
curlコマンド実行後の結果(一部情報をマスク)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
HTTP/1.1 201 X-AREQUESTID: 1425x871x1 X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN Content-Security-Policy: frame-ancestors 'self' X-ASEN: SEN-XXXXXXXXXXXX Set-Cookie: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX;path=/jira;HttpOnly X-Seraph-LoginReason: OK Set-Cookie: atlassian.xsrf.token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;path=/jira X-ASESSIONID: XXXXXXX X-AUSERNAME: admin Cache-Control: no-cache, no-store, no-transform Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Date: Sun, 27 May 2018 14:45:16 GMT {"id":"10400","key":"RSKUMA-6","self":"http://192.168.56.103:8080/jira/rest/api/2/issue/10400"} |
実際に課題キー「RSKUMA-6」の課題(http://192.168.56.103:8080/jira/browse/RSKUMA-6)へアクセスすると、指定した内容で課題が作成できていることが分かります。
*本記事は、2018年5月に執筆したものを、2023年2月にJira Data Center ver.9.5.1で検証したものです。
本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。