Hatena::ブログ(Diary)

みずぴー日記 Twitter

2012-05-06(日)

Redmine, git, Jenkinsの状態を横断的かつリアルタイムに表示する『Dashbozu』をリリースしました。

Redmine, git, Jenkinsの状態を横断的かつリアルタイムに表示する『Dashbozu』をリリースしました。を含むブックマーク

f:id:mzp:20120506231144p:image

Redmine, git, Jenkins などプロジェクト管理ツールの状態を横断的かつリアルタイムに表示するWebアプリ『Dashbozu』を作りました。

これを使えば、一つの画面でプロジェクトの”今”の状態を把握できます。 WebSocketを用いているので、ただ開いているだけで、次々と情報を得ることができます。

iPadで開きっぱなしにして、机の上に置いておくような使い方を想定しています。

なぜこれを作ったか

一般的なソフトウェア開発現場では

  1. Redmineでチケットを作成する
  2. gitコミットを繰り返し、中央レポジトリにpushする
  3. JenkinsによるCIが実行される
  4. 結果を確認し、Redmineのチケットを閉じる

という流れで作業が進んでいきます。

これらの作業の中で、開発者は「適切な」タイミングでチェックとフィードバックをすることを求められます。

例えば、チェックのタイミングが遅すぎると、壊れたビルドが放置されたり、チケットが更新されたのにレビューされていないコードが溜ったりしてしまいます。一方、早過ぎるコードレビューは開発者がまさに修正中の内容と重複してしまうことがあり、効率的ではありません。

つまり、適切なタイミングとは、例えば以下のようなものです。

  • Gitでpushしたタイミング ・・・ 開発者が仕様を勘違いしていないか
  • Jenkins のビルドが完了したタイミング・・・ビルドが壊れていないか
  • Redmineのチケットのステータスが変更になったタイミング ・・・ コードレビュー

これらのチェックを早すぎず遅すぎないタイミングで行うためには、リアルタイムで通知を受け取らなければなりません。しかし、メールや IRC への通知や XFD などで受け取る場合は、各アプリ毎に常にチェックしていなければいけないため、非常に面倒くさいです。

そこで、横断的かつリアルタイムなビューを提供するDashbozuを開発しました。

Dashbozuの主な機能

Redmine, git, Jenkinsの状態表示

f:id:mzp:20120506231146p:image

Redmineでのチケット作成・編集、gitへのコミット、Jenkinsのビルド結果を一覧表示できます。

WebSocketを用いたリアルタイム通知

WebSocketを利用したPush通知を採用しているので、ページのリロードをすることなく最新の情報を得ることができます。

iPhoneからの閲覧

f:id:mzp:20120506231147p:image

iPhone用のCSSも用意しているので、iPhoneからも快適に閲覧できます。たぶん、Androidからでも大丈夫だと思いますが、誰も端末を持っていなかったので確認できていません。

iPhone/iPadへの通知

f:id:mzp:20120506231145p:image

Boxcarと連携しているため、iPhone/iPadへの通知も可能です。 どこにいても、リアルタイムにプロジェクトの状態を把握できます。

ダウンロードインストール方法

作った人たち(アルファベット順)