唐突に Readmine の Windows クライアントがが欲しくなったので作り始め。とはいえ、土曜日から作っていて後から知ったのだけど、Redmine の .NET ライブラリって zapadi/redmine-net-api にあったのであった。NuGet からも落とせる https://www.nuget.org/packages/redmine-api/ ので、それを使えばいいのだが。まあ、ほどよく動くところまで出来てきたので、自前のものを使うことにする。
WPF で作る
最近、VB6 から WPF 版の移植をやっていて、無駄に EF+MVVM+DataGrid の組み合わせのノウハウがついてしまったので早速利用する。
redmine の apikey を取ってきて、RmClient.config に置くと、こんな風にプロジェクト一覧、チケット一覧、チケットの編集ができるようになる。
ひとまずは、チケットの新規作成と更新ができればよいので、そこだっけ実装して試している。プロジェクトをあちこち移動すること少ない(サブプロジェクトを組んだ時は別だろうけど)ので、プロジェクト単位に config を用意しておいて専用のアプリ(不具合管理と課題管理とか)を立ち上げる、という風にすると手順が少なくて済むかなと思っている。アプリごとお客に配布して、クライアントから直接いれて貰うとかできればいい。Redmine のブラウザよりも機能を絞ってしまう感じ。
コマンドラインで動かす
手元の wordpress 投稿ツールのように、テキストエディタ+コマンドラインで動くようにしておく。
これは、チケットID を指定して、内容を取ってくる。
そして、内容をエディタで編集する。
そして、コマンドラインから投稿する。
ブラウザからツールで見れば、内容やステータスが更新されていることが分かる。
チケットの新規作成とかもできるので、数十件のチケットを同時にアップするとかも可能になる。
RmClient.Lib を .NET Standard 化する
コマンドラインツールが、.NET Core でも動くように、ライブラリ自体は .NET Standard で作っておく。
RmClient.Console.Core のほうが .NET Core 版で、Linux 上からも使える
dotnet run Get <ticket_id>
のようにパラメータを指定する訳なんだが、このあたりの解説はまた別途。
コード
ひとまず、現状を github にアップ。
moonmile/RmClient: Redmine Client
https://github.com/moonmile/RmClient