結局、Redmine公式サイトからRESTでカスタムフィールドの設定は取得できませんでした。設定を直接取得できなかったので、逆にチケット(XML)から投入はできるようにしたいと思います。
チケットの内容表示を確認
Redmineではチケットの内容を表示すると、値の有無にかかわらず、ユーザーに付与されているロール(権限)に応じて、そのトラッカーに設定されたカスタムフィールドが表示されます。
ログインしていないユーザー(匿名ユーザー)でチケットの内容を表示したところ、カスタムフィールドの表示は次のようになっていました。
トラッカー | カスタムフィールド |
Defect | Resolution、Affected version |
Feature | Resolution |
Patch | なし |
匿名ユーザーが画面から確認できるカスタムフィールドは「Resolution」と「Affected version」の2種類であることがわかります。
表示される値から、「Resolution」の書式には文字列(テキスト、長いテキスト、リストの何れか)が、「Affected version」の書式にはバージョンが設定されていることまではわかります。
Resolutionの調査
解決状況ですので、恐らく書式はリストで、複数選択無しのドロップダウンリストだと思われますが、正確なところはわかりません。仕方がないので、Excelを利用して全データを確認してみます。
最初に一つのXMLファイルを開いてXMLソースを編集します。右の一覧から、フィールドをドラッグ&ドロップして、抽出するフィールドを決定します。その後、テーブル上の右クリックから、すべてのXMLファイルを一気にインポートします。
※150ファイル(100チケット/ファイル)でも30秒かかりません。

インポートしたデータをもとに、1チケット当たり複数のResolutionが設定されていないか、ピボットテーブルで確認してみます。集計列を選択した状態で、ステータスバーに最大値を表示したところ「1」なので、複数選択は無いことがわかります。

次に、ピボットテーブルの集計項目を変えて、どのような選択肢があるのか見てみます。

上の結果から、Resolutionには次の選択肢があれば良いことがわかります。
- Cant reproduce
- Duplicate
- Fixed
- Invalid
- No feedback
- Wont fix
Affected versionの調査
先のResolutionと同様に、複数指定されたチケットがないか確認します。ステータスバーの最大値は「1」なので、複数選択はないことがわかりました。

ピボットテーブルを変えて、どのような選択肢があるのか見てみます。

値(value)は、「versions」テーブルに設定されている「id」になっています。バージョン名を確認するには、「versions」テーブルを参照する必要があります。
コメント