Redmine REST APIとgitの連携をしてみた

一年ぶりのブログ記事。
転職直後はあんまり使ってなかったけど、このごろRedmineによるタスク管理の重要性を再確認して、使う機会が多くなった。


けど、利用頻度が多くなってきたらいちいちEclipse <==> ターミナル <==> ブラウザを行き来してやり取りするのがメンドウになってきた。
という訳で、Redmineを自分好みにターミナルから使えるようにRedmine REST APIでgitとの連携をできるようにしてみた。


コマンド名はgit+redmineだからgitmineという安直なネーミングで。


結果は、まだあんまり使ってないからわからないからわからぬ(;´Д`)
とりあえずAPIの勉強になったから良しとする。


近いうちにさくらのVPSを借りて自分のRedmineを立てないなぁ。


gitのフックスクリプトと同時に利用するのが前提。
要件としてはターミナルからRedmineのチケット確認・更新が行えること。
リポジトリとの関連付けはフックスクリプトにお任せ。


というか、git-redmineを導入しようとして失敗したんだよね(´・ω・`)


公開するかはわからんけど、とりあえず自分のメモを兼ねて使い方。


初期設定

このへんの設定はgit-redmineの仕様に合わせた。
一応共存できるような配慮で。
そもそも、git-redmineが使えれば問題ないわけだし(´・ω・`)

git config redmine.apiKey 自分のAPIキー
git config redmine.projectUrl リポジトリに関連付けてあるプロジェクトのURL



Basic認証設定

もしチケットの更新を行う場合はAPIキーの他にBasic認証用の値を設定する必要がある。
GETだけだったらこの設定はいらない。
PUTの使い方間違えてるのか、APIの使い方を間違えるのか、イマイチわからんけど、自分しか使わんからまぁいいかな(;´Д`)


Basic認証の値は他人にバレるとマズいから、同期されないように.git/.gitmineに暗号化して保存してる。
暗号の安全性は全く保証されてないがな( ー`дー´)キリッ

gitmine config --basic "user:passwordをbase64した文字列"



Redmineのチケットを見る

gitフックスクリプトの規約に合わせて、id/チケット番号のブランチにいる場合、gitmineを実行するとチケットのサブジェクトが表示される。
オプションで--ticket チケット番号を付与すれば好きなチケットを参照できる。--ticketオプションは大抵の命令と共存可能。

gitmine
〜チケット番号 :: チケットのサブジェクトを表示〜

gitmine --ticket 3103
〜3103番のチケットサブジェクトを表示〜

Redmineのチケット一覧を見る

オプションで-aを付加すると、未解決のチケット一覧が表示される

gitmine -a
〜チケット番号 :: チケットのサブジェクトを表示〜
〜チケット番号 :: チケットのサブジェクトを表示〜
〜チケット番号 :: チケットのサブジェクトを表示〜
...

Redmineのチケット詳細を見る

オプションで--detailを付加すると、チケットの詳細が表示される。

gitmine --detail
〜チケット番号 :: チケットのサブジェクト〜
〜作成日時〜
〜更新日時〜
〜進捗率〜
〜内容〜

チケットの進捗率を操作する

オプションで--doneを付加すると、チケットの進捗率を更新できる。


進捗率を50%に変更する場合

gitmine --done 50

チケットの状態を変更する

オプションでstatusを指定すると、チケットの状態を変更できる。
・・・ようにする予定(´・ω・`)


チケットを終了させる

gitmine --status close



チケットを再開する

gitmine --status open





今のところ自分で使う専用で考えてるから適当実装。
Redmineのチケットにコメントを付けるAPIが見つからないけど、どうやるんだろ(´・ω・`)