バグチケット管理システム(以降、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経由でデータを取得します。
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
のドキュメントを参照してください。