Redmine Client の作り始め

唐突に 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 に置くと、こんな風にプロジェクト一覧、チケット一覧、チケットの編集ができるようになる。

image

ひとまずは、チケットの新規作成と更新ができればよいので、そこだっけ実装して試している。プロジェクトをあちこち移動すること少ない(サブプロジェクトを組んだ時は別だろうけど)ので、プロジェクト単位に config を用意しておいて専用のアプリ(不具合管理と課題管理とか)を立ち上げる、という風にすると手順が少なくて済むかなと思っている。アプリごとお客に配布して、クライアントから直接いれて貰うとかできればいい。Redmine のブラウザよりも機能を絞ってしまう感じ。

コマンドラインで動かす

手元の wordpress 投稿ツールのように、テキストエディタ+コマンドラインで動くようにしておく。

これは、チケットID を指定して、内容を取ってくる。

image

そして、内容をエディタで編集する。

image

そして、コマンドラインから投稿する。

image

ブラウザからツールで見れば、内容やステータスが更新されていることが分かる。

image

チケットの新規作成とかもできるので、数十件のチケットを同時にアップするとかも可能になる。

RmClient.Lib を .NET Standard 化する

コマンドラインツールが、.NET Core でも動くように、ライブラリ自体は .NET Standard で作っておく。

image

RmClient.Console.Core のほうが .NET Core 版で、Linux 上からも使える

dotnet run Get <ticket_id>

のようにパラメータを指定する訳なんだが、このあたりの解説はまた別途。

コード

ひとまず、現状を github にアップ。

moonmile/RmClient: Redmine Client
https://github.com/moonmile/RmClient

カテゴリー: C#, RmClient パーマリンク