LoginSignup
1
4

More than 3 years have passed since last update.

じゃあどうしたらRedmineの各項目をREST APIで更新できるのか

Last updated at Posted at 2021-04-05

てきとーにググっただけだと公式にあるような「題名」「コメント」の例しか見当たらなかった。
で、見よう見まねで優先度の更新をしようとしてもなかなかうまくできずハマったのでメモ。

とりあえずサクッと動きを見るため、curl+JSONでお試し。
Redmine側は、bitnami Redmineをインストールしたそのままで確認。

基本コマンド

以下の記事を参考に、{JSON指定}を後述する各項目のものに書き換えて確認する。

$ curl [REDMINE_HOME]/issues/[ID].json?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxx  -H "Accept: application/json" -H "Content-type: application/json" -X PUT -d '{"issue": {JSON指定}}'

例えば、優先度を変更したい時は以下のようにする。

$ curl [REDMINE_HOME]/issues/[ID].json?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxx  -H "Accept: application/json" -H "Content-type: application/json" -X PUT -d '{"issue": {"priority_id": 3 }}'

項目ごとのJSON指定

Web経由でチケット更新するとbitnami Redmineのログに残るので、そこで指定しているパラメータを使用することで更新できそう。
今回はJSONだけど、同じ構成でXMLもいけるんじゃないかな。未確認。

デフォルト項目

説明、優先度、開始日、期日、カスタムフィールド以外は推測 (試してない)。

項目 JSON例 設定値
プライベート設定 {"is_private": 0 } 0なら公開、1ならプライベート?
プロジェクト {"project_id": 0 } プロジェクトごとに割り振られた数値
トラッカー {"tracker_id": 0 } トラッカーごとに割り振られた数値
題名 {"subject": "更新後の題名" } テキスト
説明 {"description": "更新後の説明" } テキスト
ステータス {"status_id": 0 } ステータスごとに割り振られた数値
優先度 {"priority_id": 0 } 優先度ごとに割り振られた数値
担当者 {"assigned_to_id": 0 } 担当者ごとに割り振られた数値
親チケット {"parent_issue_id": 0 } 親チケットの番号
開始日 {"start_date": "2020-02-20" } 日付文字列
期日 {"due_date": "2020-02-20" } 日付文字列
予定工数 {"estimated_hours": 0 } ステータスごとに割り振られた数値
ステータス {"status_id": 0 } ステータスごとに割り振られた数値
コメント {"notes": "コメントの内容" } テキスト

カスタムフィールド

カスタムフィールドの場合、JSON指定に{"custom_field_values": { "カスタムフィールドID": カスタムフィールド設定に対応する入力値 }}が入る。
例えば、カスタムフィールドIDが12、入力形式がON/OFF(bool)の場合、{"custom_field_values": { "12": 1 }}とすることで設定値をONに設定できる。

xxxごとに割り振られた数値やカスタムフィールドのIDを確認する方法

  1. Web上のチケット編集画面を開く
  2. ブラウザのデベロッパーツールを開く
  3. 調べたい対象の入力項目をインスペクターで選択
  4. 選択式の入力欄なら<select>タグの子要素に<option value="~~">の記載があり、このvalueの値がIDに対応する。
  5. カスタムフィールドIDも同様に調べられる。<label for="issue_custom_field_values_12">となっていたりするので、この末尾の数値を使用すればよい。これがIDになっている。
1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4