しかしコマンドラインから redmine を操作できる物で気に入った物が無かったのでGo言語で自作するに至った。まずライブラリ
mattn/go-redmine - GitHub残念ながら API は全て出揃ってなくて対応状況は以下の様な感じ。
https://github.com/mattn/go-redmine
API | Implements |
---|---|
Issues | 100% |
Projects | 100% |
Project Memberships | 100% |
Users | 0% |
Time Entries | 100% |
News | 100% |
Issue Relations | 100% |
Versions | 0% |
Wiki Pages | 0% |
Queries | 0% |
Attachments | 0% |
Issue Statuses | 100% |
Trackers | 100% |
Enumerations | 100% |
Issue Categories | 100% |
Roles | 100% |
Groups | 0% |
$ go get github.com/mattn/go-redmine/godmine
名前は中二病っぽいけど「godmine」という名前にした。使い方は、例えば issue の一覧であれば
$ godmine issue list
もしくは
$ godmine i l
issue の登録は
$ godmine issue create "なんてこった" "大変だ!"
みたいにするか
$ godmine issue append
で起動するテキストエディタ(環境変数EDITORを参照しunix改行コードが扱えるテキストエディタのみ使用可能)で
### Subject Here ###
### Description Here ###
上記の部分を書き換えて保存終了する。設定ファイルは ~/.config/godmine/settings.json に(Windows では %APPDATA%/godmine/settings.json)
{
"endpoint": "http://redmine.example.com",
"apikey": "アクセスキー",
"project": 1
}
の様に書く。Project Id
は URL から調べて下さい。なお、環境変数 GODMINE_ENV を「foo」に設定すると「settings.foo.json」が読まれるので、複数のプロジェクトを扱う場合は
$ GODMINE_ENV=foo godmine issue append
とうい感じに使える。以下現状サポートしてるコマンド
gotmine [arguments]
Project Commands:
add a create project with text editor.
$ godmine p a
create c create project from given arguments.
$ godmine p c name identifier description
update u update given project.
$ godmine p u 1
show s show given project.
$ godmine p s 1
delete d delete given project.
$ godmine p d 1
list l listing projects.
$ godmine p l
Issue Commands:
add a create issue with text editor.
$ godmine i a
create c create issue from given arguments.
$ godmine i c subject description
update u update given issue.
$ godmine i u 1
show s show given issue.
$ godmine i s 1
delete d delete given issue.
$ godmine i d 1
close x close given issue.
$ godmine i x 1
notes n add notes to given issue.
$ godmine i n 1
list l listing issues.
$ godmine i l
Membership Commands:
show s show given membership.
$ godmine m s 1
list l listing memberships of given project.
$ godmine m l 1
User Commands:
show s show given user.
$ godmine u s 1
list l listing users.
$ godmine u l
管理者権限があればプロジェクトを消す事も出来ます。なんて怖い!issue の close(x) は、ステータス一覧の先頭から見て close にチェックされている最初のステータスで issue を閉じます。
元はと言えば Windows で ruby の動作が遅すぎるのが嫌で作り始めましたが、linux でも動きます。
まだ作り始めたばかりなので、欲しい機能があれば入れていくつもりです。