RedmineのREST APIでチケットの履歴を取得したい

杠朋美
farend-support blog
16 min readJun 22, 2022

Redmineに用意されているREST APIを使うと、履歴などチケットのさまざまなデータを取得できます。

REST APIリファレンス
https://www.redmine.org/projects/redmine/wiki/rest_api
チケット情報の取得については下記に記載があります。https://www.redmine.org/projects/redmine/wiki/Rest_Issues

REST APIを利用する際は「管理」→「設定」→「API」→「RESTによるWebサービスを有効にする」をONに設定にします。

APIを使用するにはAPIにアクセスするためのプログラムを組むなどしますが、簡単なのはコマンドラインツールの curl を使うことです。curlはLinuxやmacOSのコマンドラインでデフォルトで使えるほか、Windowsでもフリーで入手できます。

curl ‘https://my.redmine.jp/demo/issues/21618.xml?include=journals’ > issue.xml

上の内容を実行すると以下のようにすると、特定のチケットの注記を含むデータをXML形式で取得できます。

<?xml version=”1.0" encoding=”UTF-8"?><issue><id>21618</id><project id=”1" name=”デモ用プロジェクト”/><tracker id=”1" name=”バグ”/><status id=”5" name=”終了” is_closed=”true”/><priority id=”4" name=”通常”/><author id=”3" name=”伊藤 健太”/><assigned_to id=”3" name=”伊藤 健太”/><category id=”1930" name=”02機器設置”/><fixed_version id=”1681" name=”業務分析”/><subject>作業1</subject><description></description><start_date>2020–04–02</start_date><due_date>2020–04–09</due_date><done_ratio>100</done_ratio><is_private>false</is_private><estimated_hours/><total_estimated_hours/><spent_hours>0.0</spent_hours><total_spent_hours>0.0</total_spent_hours><created_on>2019–07–10T08:49:13+09:00</created_on><updated_on>2021–10–11T21:16:16+09:00</updated_on><closed_on>2021–10–11T21:16:16+09:00</closed_on><journals type=”array”><journal id=”7163"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:50:22+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”precedes”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7164"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:51:00+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”due_date”><old_value>2019–07–12</old_value><new_value>2019–07–13</new_value></detail></details></journal><journal id=”7166"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:52:39+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”due_date”><old_value>2019–07–13</old_value><new_value>2019–07–19</new_value></detail><detail property=”attr” name=”start_date”><old_value>2019–07–10</old_value><new_value>2019–07–16</new_value></detail><detail property=”relation” name=”follows”><old_value/><new_value>21620</new_value></detail></details></journal><journal id=”7168"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:53:50+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”precedes”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7170"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:54:05+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”relates”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7172"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:54:17+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”relates”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7175"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:54:26+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”duplicated”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7177"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:54:59+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”duplicated”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7179"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:55:28+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”blocked”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7181"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:55:45+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”blocked”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7182"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:55:52+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”blocks”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7184"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:56:05+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”blocks”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7187"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:56:15+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”copied_from”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”7189"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:56:36+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”copied_from”><old_value>21619</old_value><new_value/></detail></details></journal><journal id=”7191"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2019–07–10T08:56:39+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”relation” name=”precedes”><old_value/><new_value>21619</new_value></detail></details></journal><journal id=”8879"><user id=”3" name=”伊藤 健太”/><notes/><created_on>2020–02–06T18:55:15+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”tracker_id”><old_value>2</old_value><new_value>1</new_value></detail></details></journal><journal id=”9030"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2020–03–10T21:57:22+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”due_date”><old_value>2019–07–19</old_value><new_value>2020–04–19</new_value></detail><detail property=”attr” name=”start_date”><old_value>2019–07–16</old_value><new_value>2020–03–01</new_value></detail></details></journal><journal id=”10052"><user id=”3" name=”伊藤 健太”/><notes/><created_on>2021–02–12T07:19:55+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”status_id”><old_value>1</old_value><new_value>2</new_value></detail></details></journal><journal id=”10594"><user id=”3" name=”伊藤 健太”/><notes/><created_on>2021–08–17T19:46:06+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”assigned_to_id”><old_value>3</old_value><new_value>4</new_value></detail></details></journal><journal id=”10631"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2021–09–14T14:18:09+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attachment” name=”2774"><old_value/><new_value>テスト.txt</new_value></detail></details></journal><journal id=”10753"><user id=”3" name=”伊藤 健太”/><notes></notes><created_on>2021–10–11T21:16:16+09:00</created_on><private_notes>false</private_notes><details type=”array”><detail property=”attr” name=”category_id”><old_value/><new_value>1930</new_value></detail><detail property=”attr” name=”status_id”><old_value>2</old_value><new_value>5</new_value></detail><detail property=”attr” name=”assigned_to_id”><old_value>4</old_value><new_value>3</new_value></detail><detail property=”attr” name=”done_ratio”><old_value>0</old_value><new_value>100</new_value></detail></details></journal></journals></issue>

関連情報

--

--