*

.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クライアントの開発をお考えての方はお試しください。

関連記事

pomera2evernoteが窓の杜で紹介されました

窓の杜 - 【REVIEW】“ポメラ”内のテキストファイルを“Evernote”へ転送できる「pom

記事を読む

6603182525_44a3668e0d_z

wgetメモ(デッドリンクのチェックとHTTPヘッダ表示)

wgetはHTTPでファイルを取得する以外にも色々なオプションがありますが、よく忘れるのでメモ。

記事を読む

JavaScriptのレンダリングエンジンTempoが使いやすかった

JavaScriptのレンダリングエンジンをいくつか調べたのですが、その中でTempoが使いやすかっ

記事を読む

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

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

記事を読む

オープンデータ・アプリコンテストのデータ公開が始まっていた

総務省とオープンデータ流通推進コンソーシアムが開催しているオープンデータ・アプリコンテストで使用可能

記事を読む

no image

HerokuのSendgridでNet::SMTPFatalErrorが発生

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

記事を読む

Androidのサンプルコードを入手できるサイト

Androidのサンプルコードを入手できるサイトのメモです。 1. apps-for-androi

記事を読む

PomeraのテキストをEvernoteへアップロードするプログラムを作りました

先日、自分用にPomeraのテキストをEvernoteへアップロードするプログラム(Rubyスク

記事を読む

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

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

記事を読む

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

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

記事を読む

FlickURLで使ったgemとCocoaPodsのライブラリ

今年の2月に「Flickrの写真へのリンクを簡単に取得する」だけのiP

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

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

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

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

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

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

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

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

→もっと見る

PAGE TOP ↑