TicGitで簡単すぐにチケット管理
Web2.0といわれて久しいですが、ライフハッカーの皆様はアイデアやtodoをどのように管理されていますか?わたくしは単純にiPhoneのメモに書き留めております。最近その頻度が増えてきて、なにかもっと便利にできないものかと考えはじめました。おれおれチケット管理をする必要があるのです。HerokuにRedmineをおこうとか考えましたが、もっと簡素なもので十分。使いましょう、TicGitを。
TicGit
TicGit-ng is a simple ticketing system, roughly similar to the Lighthouse model, that is based in git. It provides a command line client that uses the ‘git’ gem to keep its ticketing information in a separate branch (called ‘ticgit-ng’) within your existing git repository. All the data is file based and rarely changing, decreasing the likelihood of a merge issue. Right now, ticket branch merges need to be done manually and separately, but work is being done on a ti sync command to make this easier and more intuitive.
https://github.com/schacon/ticgit/blob/master/README.mkd
Gitを使ったチケット管理システムがTicGitです。TicGit-ngと名前を改めて今現在も開発が続いているようです。Gitを使ったとはいうものの、TicGitが裏でgitコマンドを利用しているだけで、実際のチケット操作はすべてtiコマンドでおこないます。MOONGIFTで紹介されたりしてるので、知っている人も多いのではないでしょうか。当時すこし使ってみた*1覚えがあります。もう一度ためしてみましょう。
インストール、実行
GithubのWikiはngとなる前のまま更新されていないようで、インストールのコマンドからして違います。Wikiに従うとハマるのでREADMEを参照しながらやりましょう。
% gem install TicGit-ng Fetching: TicGit-ng-1.0.2.4.gem (100%) Successfully installed TicGit-ng-1.0.2.4 1 gem installed Installing ri documentation for TicGit-ng-1.0.2.4... Installing RDoc documentation for TicGit-ng-1.0.2.4... % ti No repo found
すんなり入って、すんなり動いてくれました。gitリポジトリではないところで実行すると上記のように表示されます。gitリポジトリ配下で実行するとusageが表示されます。同時に、リポジトリにticgitブランチが作成されます。
ためしにチケットを作成してみましょう。
% ti new #チケット新規作成 #エディタが開くのでチケット名を入力し、保存してとじる I, [2011-04-25T22:27:40.209974 #3438] INFO -- : saving 1303738060_this-is-test-ticket_231 Title: This is test ticket TicId: c569c254326a6c581ab761dad1d126213330aa4d Assigned Opened: 2011-04-25 22:27:40 +0900 (0 days) State: OPEN Points: no estimate Tags:
エディタが開いてチケット名を入力させるあたり、Gitを使っている感じがしますね。要はticgitブランチにコミットしているんですね。確認してみましょう。
% git co ticgit #ticgitブランチをチェックアウト Switched to branch 'ticgit' % git log --pretty=oneline 6a2f7acc5e3f6a71d9c767ba231cb610c69845f0 added ticket 1303738060_this-is-test-ticket_231 5df2a32e02a54742a7d8bd98850c643f621916ec creating the ticgit-ng branch
先ほど追加したThis is test ticketがコミットされていますね。
チケットを追加するたびにエディタが開くのは煩わしいと感じるときもありますよね。git-commit -m 'message'のように済ませたい場合は次のようにします。
% ti new -t 'oh, this is also test' # -tの後にチケット名を入力(tはtitleの意) I, [2011-04-25T22:37:02.000397 #3747] INFO -- : saving 1303738621_oh-this-is-also-test_692 Title: oh, this is also test TicId: 1cc8f339aa59917a8e4c1b393375e65e3bd4a3fd Assigned Opened: 2011-04-25 22:37:01 +0900 (0 days) State: OPEN Points: no estimate Tags:
それでは、作成したチケットを確認してみましょう。
% ti list TicId Title State Date Assgn Tags ---------------------------------------------------------------------- c569c2 This is test ticket open 04/25 1cc8f3 oh, this is also test open 04/25
チケット名、状態などが整形されて表示されます。味気ないなーと思った人は、次いこう次。
WebUI
ticgitはブラウザからチケットを一覧/操作できるWebUIを備えています。ticgitwebコマンドでサーバを起動できます。仕組みは、単純にSinatraで動いています。そのため、tiコマンドの動作環境に加えてsinatra、hamlが必要となるので、入ってなければgemで入れましょう*2。
チケット一覧。チケットの状態でフィルタできる。
個別チケット画面。コマンドでいうとti showに相当。ここから状態の変更やtagの管理などもできる。
新規チケットなど簡単な操作はコマンドから、閲覧やチケットIDの入力をともなう操作はブラウザからというのがいいかもしれませんね。
これだけあれば最低限どうにかなるサブコマンド
list | チケット一覧をみる |
new | 新規チケット作成 |
recent | 最近の状況をみる |
show | チケットの詳細をみる |
comment | チケットにコメントする |
state | チケットの状態を変更 |
サブコマンドの詳細については--helpをつけると確認できます。
他にも、チケットをアサインしたり、リモートブランチを使ってチケットを同期したりできる模様。それについてはREADMEを参照してもらえればよろしいかと。いずれ試したらエントリにしたいけれども。