RESTのXMLファイルからRedmineのカスタムフィールドを調査

結局、Redmine公式サイトからRESTでカスタムフィールドの設定は取得できませんでした。設定を直接取得できなかったので、逆にチケット(XML)から投入はできるようにしたいと思います。

目次

チケットの内容表示を確認

Redmineではチケットの内容を表示すると、値の有無にかかわらず、ユーザーに付与されているロール(権限)に応じて、そのトラッカーに設定されたカスタムフィールドが表示されます。

ログインしていないユーザー(匿名ユーザー)でチケットの内容を表示したところ、カスタムフィールドの表示は次のようになっていました。

トラッカーカスタムフィールド
DefectResolution、Affected version
FeatureResolution
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」テーブルを参照する必要があります。

コメント

コメントする

目次