*

.NETからRedmineへアクセスするライブラリを試してみた

公開日: : 最終更新日:2013/08/18 プログラミング

Crab apples
Creative Commons License photo credit: ahisgett

Redmine Clientというアプリケーションがあります。Windows(.NET)上で動作するRedmineのクライアントで、機能的には、

  • チケットに費やした時間を計測する
  • 時間をRedmineへ登録する
  • 新しいチケットを登録する

というシンプルなものです。C#で書かれています。

このアプリケーションにはRedmineへアクセスするためのライブラリ(DLL)が添付されており、APIの仕様も公開されています。(どちらかと言うと、アプリケーションはこのライブラリのサンプル的な位置付けなのかな?)

Redmineは0.9でRESTfulになるらしいので、それまで待とうか…という気もしないではないのですが、このライブラリのFUTURE PLANSには“Making use of Redmine 0.9 RESTfull interface”とあり、0.9でRESTfullになったら対応する模様。

ということで、安心して?試してみました。

インストールと設定

  1. ここからredmineclient-0.3.0.zipをダウンロードする。
  2. アーカイブを解凍しNohal.Redmine.dllをVisual Studioのプロジェクトで参照設定する。

これだけです。

チケット一覧を取得するための基本的な流れ

以下のような流れでチケット一覧を取得できます。簡単。

  1. Redmineオブジェクトの生成
  2. RedmineのURLを設定(Redmine.RedmineBaseUriプロパティ)
  3. Redmineへのログイン(Redmine.LogInメソッド)
  4. プロジェクト一覧の取得(Redmine.GetProjectsメソッド)
  5. プロジェクトIDを指定してチケット一覧の取得(Redmine.GetIssuesメソッド)

(載せるまでも無いですが)実際のコードはこんな感じ。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Nohal.Redmine;

namespace RedmineTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Redmine redmine = new Redmine();
            redmine.RedmineBaseUri = "RedmineのURL";
            redmine.LogIn("Redmineのユーザ名", "Redmineのパスワード");

            List<Project> projects = redmine.GetProjects();
            textBox1.Text = "プロジェクト一覧rn";
            foreach (Project project in projects)
                textBox1.Text += project.Id.ToString() + ": " + project.Name + "rn";

            textBox1.Text += "チケット一覧rn";
            // GetIssues(3)の3はプロジェクトID。本来はGetProjects()で取得したIDを指定する。
            foreach (Issue issue in redmine.GetIssues(3))
                textBox1.Text += issue.Id + ": " + issue.Subject + "rn";
        }
    }
}

ざっとAPI仕様を眺めた限りでは、条件を指定してチケットを絞り込む方法が無さそうです。
このため、指定したプロジェクトの全チケットがListで返却されますので、チケット数が数千~数万のオーダーになると厳しいかもしれませんが、チケットの登録はイケるでしょう。

C#から簡単にRedmineへアクセスできるのはいいですね。Redmineクライアントの開発をお考えての方はお試しください。

関連記事

exeUSBを使ったPomera→Evernote自動アップロード設定例

昨日のエントリでちらりと触れましたが、exeUSBを使うとPomeraからEvernoteへのアップ

記事を読む

Software Design総集編 【2000~2009】(DVD付)

Software Design 総集編 【2000~2009】(DVD付)posted with a

記事を読む

CocoaPodsにある使うと生産性が上がりそうなiOS向けライブラリ

CocoaPodsにある使うと生産性が上がりそうなiOS用ライブラリをまとめたのでシェアします。

記事を読む

no image

accepts_nested_attributes_forしたモデルの日本語化(Rails 3.1.1)

UKSTUDIO - accepts_nested_attributes_forしたモデルの日本語化

記事を読む

s1.png

Chrome Apps for MobileでサンプルアプリをiPhoneシミュレータへデプロイしてみた

天使やカイザーと呼ばれて » Chrome Apps for mobileの開発方法を参考に、Chr

記事を読む

no image

BubbleWrapでジェスチャーを検知した際の座標を取得する

RubyMotionでBubbleWrapを使うとジェスチャーを簡単に検知できますが、以下のように書

記事を読む

pomera2evernote Version 0.2をリリースしました

photo credit: yto ノートブック名に記号(など)が使われている場合、Ever

記事を読む

横浜FC bot(非公式)を作りました

横浜FC bot (非公式) (@yokohamafcbot)を作りました。 twbot2.

記事を読む

no image

HerokuのSendgridでNet::SMTPFatalErrorが発生

HerokuにあるアプリへSendGridアドオンをインストールし、メールを送信しようとしたところ、

記事を読む

横浜FC bot (@yokohamafcbot)のニュースソース(2012年12月5日現在)

昨年末から、twitterの横浜FC bot (@yokohamafcbot)を運営しています。

記事を読む

周富徳さんが1000種類ものレシピを頭に入れた方法

伊集院光のラジオ深夜の馬鹿力で紹介されていた、周富徳さんがどうやって1

【読書メモ】最近Kindleで読んで面白かった漫画『東京トイボックス』『大東京トイボックス』『インベスターZ』

最近、Kindleで読んだ『東京トイボックス』『大東京トイボックス』『

5分で教育方針を考えたところ意外な結果が

子供の学校へ提出する書類に教育方針を書く欄がありました。 教育方針…

横浜公園のチューリップが満開でした

横浜公園のチューリップが満開でした。近くを通ったので何枚かスナップ。

【読書メモ】簡単、なのに美味い! 家めしこそ、最高のごちそうである。

佐々木俊尚さんの料理本『簡単、なのに美味い! 家めしこそ、最高のごちそ

→もっと見る

PAGE TOP ↑