今の案件は Redmine を使ってる。
実は Redmine を本格的に使うのは初めてだったりする。

で、使ってみた感想、「チケットに埋もれる...w」

使い方の問題のような気もするのだが、 基本的にチケットの重み付けがプロジェクト全体の物しか無く ユーザ毎の重み付けが無いのでチケットの管理がしづらい。

ぶっちゃけ、他人に振られたチケットとか興味無いし、 自分にとってのチケット意味付けが欲しいんだよね。

ウォッチャーとかは有るけども「管理責任のあるチケット」も 「単なるオブサーバのチケット」もごちゃ混ぜなのであまり使えない。

で、前置きが長くなったが Redmine には WebAPI で XML や JSON でチケットの情報を取得できる機能が付いていることに気がついた。
これを使って俺様的チケット管理が出来るんじゃ無いかと思い調べてみた。

API の仕様はこの辺

  • 英語:
    http://www.redmine.org/projects/redmine/wiki/Rest_api
  • 日本語(古い):
    http://www.r-labs.org/projects/r-labs/wiki/Redmine_REST_API

ざっくり見るとまだ発展途上の様な気もする。 仕様書もかなり雑だ。

実際に動かしてみる

  • http://www.r-labs.org/issues.json
{ "issues": [ { "id": 1117, "project": { "id": 9, "name": "Wiki Extensions" }, "tracker": { "id": 2, "name": "Feature" }, "status": { "id": 1, "name": "新規(New)" }, "priority": { "id": 4, "name": "通常(Normal)" }, "author": { "id": 3, "name": "Haru Iida" }, "assigned_to": { "id": 3, "name": "Haru Iida" }, "fixed_version": { "id": 187, "name": "0.6.0" }, "subject": "Compatible with redmine 2.1", "description": "", "start_date": "2012-10-07", "done_ratio": 0, "created_on": "2012-10-07T09:10:27Z", "updated_on": "2012-10-07T09:10:27Z" }, … ], "total_count": 240, "offset": 0, "limit": 25 }

サマリ的に必要な情報は一通り取得できるようだ。 デフォルトでは25件単位にページングする。

実際に使いそうな機能を確認

  • プロジェクト指定:
        /issues.json?project_id={id}
  • ステータス制限:
        /issues.json?status_id={open|closed}{id}
  • 更新日範囲指定:(*1)
        /issues.json?updated_on=><2012-03-01|2012-03-07
  • 更新日ソート:(*1)
        /issues.json?desc=updated_on
  • ウォッチャー指定:
        出来ない

(*1)の機能は今の案件で使っている Redmine では使えなかった。 バージョンは はっきり分からないが 2011年3月頃設置したものらしい。

さすがに最近更新されたチケットが取れないと使い物になんねーだろと 思ったが逃げ道を発見。

カスタムクエリを検索条件に指定できるので、そこで更新日にソートをかければ良い。

  • カスタムクエリ指定:
        /issues.json?query_id={id}
各条件は AND で複数書けるようなので最低限の事はできる様だ。

その他

ちなみに更新機能もあるようだが今回はそこまで考えていないのでパス。

こんな感じで Web-Mail 風にチケット管理したいなーと思って鋭意作成中。 今の案件には間に合いそうも無いけどw