Redmineチケットを取得する
Text Update: 11/10, 2018 (JST)

バグチケット管理システム(以降、BTS)はバグ情報を一元管理するのに非常に有用なので導入しているプロジェクトも多いと思います。同時にバグ情報は貴重な品質データでもありますので、こられを分析に用いない手はありません。今回はBTSとしてのRedmine から直接データを取得できるredmineRパッケージを用いるとどのような情報が得られるのかを紹介します。

Packages and Datasets

本ページは標準パッケージ以外に以下の追加パッケージを用いています。
 

Package Version Description
redmineR 0.2.0 R Client for the Redmine API

 

redmineR

Redmine のデータはCSV形式で取得することができますが、一度に取得できるデータが制限されている場合が多く、必要なデータをリアルタイムで処理するには不向きです。そこで、 redmineR を用いてAPI経由でデータを取得します。
 

REST API

Redmine REST APIと呼ばれるAPIを実装しており、API経由でやり取りすることが可能です。redmineRパッケージはこのREST APIを用いて R からデータを操作する機能を提供してくれます。
なお、REST APIを利用するには Redmine 側でREST API機能を有効にする必要があります。
 

Redmineから取得できる情報

redmineRパッケージを利用して取得できる情報は、大別すると

  • プロジェクトに関する情報
  • チケット(issue)に関する情報
  • フィールドに関する情報

の三つがあります。今回はプロジェクトに関する情報とチケットに関する情報のみを紹介します。
 

プロジェクトに関する情報

Redmineはプロジェクトと呼ばれる単位でチケットを管理します。チケットの情報を得るためには、まず、どのようなプロジェクトが登録されているかを以下の関数で確認しておきます。
 

redmineR::redmine_projects(include = "all")

 
この関数の返り値のクラスは「redminer_df, data.frame」型ですので、以降は、データフレームとして処理することができますが、リスト型変数を含む点に留意してください。
 

返り値の詳細

返り値には以下のような変数が含まれます。プロジェクトの基本的な情報を除いてリスト型変数になっている点に留意してください。リスト型変数になっているのは、 Redmine のデータベースでテーブルとして管理されているためと考えてください。

Field Type Description
id int プロジェクト番号
name chr プロジェクト名(日本語化)
identifier chr プロジェクト識別子(英数字による識別子)
description chr プロジェクトの概要
status int 状態(?)
is_public logi プロジェクトの公開設定(TRUE:公開、FALSE:非公開)
trackers list トラッカーの設定値(id, name)
issue_categories list カスタム設定してるチケットカテゴリ(id, name)
enabled_modules list プロジェクトで利用しているモジュール(id, name)
created_on chr プロジェクト作成日時(UCT)
updated_on chr プロジェクト更新日時(UCT)
parent list 親プロジェクト情報(id, name)
custom_fields list カスタム設定しているフィールドの情報(id, name)

custom_fieldsは利用している Redmine の設定により表示されない場合もあります。また、 Redmine はプロジェクトに親子関係を指定することができますが、プロジェクト情報では「親」プロジェクト情報のみな点に注意してください。
 

チケットに関する情報

Redmine のチケットは前述のようにプロジェクト単位で管理されますので、チケット情報を取得する場合はプロジェクト番号を指定して取得することをおすゝめします。プロジェクト番号を指定しない場合は全チケットを取得しますので Redmine に相応の負荷がかかる点に注意してください。
 

redmineR::redmine_issues(project_id = n)

 
この関数の返り値のクラスはプロジェクト情報と「redminer_df, data.frame」型です。
 

返り値の詳細

返り値には以下のような変数が含まれます。プロジェクト情報と同様に基本的な情報を除いてリスト型変数になっています。また、これら項目はプロジェクトの設定によって異なります。

Field Type 項目名1 Description
id int # チケット番号
project list プロジェクト チケットが属するプロジェクト(id, name)
tracker list トラッカー チケットのトラッカー(id, name)
status list ステータス チケットのステータス(id, name)
priority list 優先度 チケットの対応優先度(id, name)
auther list 作成者 チケットの起票者(id, name)
assigned_to list 担当者 チケットの担当者(id, name)
category list カテゴリ 任意に設定できるチケットのカテゴリ(id, name)
subject chr 題名 チケットのタイトル
description chr 説明 チケットの詳細説明
start_date chr 開始日 チケットの対応の開始日(起票日と同じとは限らない)
done_ratio int 進捗率 チケットの進捗率(0-100%)
created_on chr 作成日時 チケットの起票日時(UCT)
updated_on chr 更新日時 チケットの更新日時(UCT)
parent list 親チケット チケットの親チケット番号(id)
fixed_version list 対象バージョン チケット対処したバージョン(id, name)
due_date chr 期日 チケットの対応期限(年月日)
estimated_hours num 予定工数 チケットの対応にかかる工数
closed_on chr 終了日時 チケットの対応完了日時(クローズとなった日時)
is_private logi NA チケットの公開・非公開設定
custom_fields list カスタム設定しているフィールドの情報(id, name)

1 日本語版Redmineにおける標準的な項目名  

おわりに

今回は取得できる情報についてのみ記述しました。 Redmine に接続するための具体的な設定などについては redmineR のドキュメントを参照してください。
 


CC BY-NC-SA 4.0 , Sampo Suzuki