しかしコマンドラインから 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 でも動きます。
まだ作り始めたばかりなので、欲しい機能があれば入れていくつもりです。

 
 

 
 
  
 
