ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Backlog の API ラッパーを作った

id:ikikko さんからアイデアをもらったので、作ってみた。
Trac によく似たプロジェクト管理ツールである Backlog のリモート API のラッパーです。
#ソースも置いてあるので適当にいじって下さい。
リリース BTS.Backlog 1.0β - Backlog アプリケーション - OSDN


ここから xml-rpc.net.2.4.0.zip をダウンロード、解凍してできた CookComputing.XmlRpcV2.dll を一緒につかいます。

なにができるの?

旧API(XML−RPC)|開発者向け|Backlog [バックログ]
ここに記載されている API は一通り実装したので全て使えます。
たとえばこのような機能があります。

  • プロジェクト一覧の取得
  • 課題(チケット)の取得
  • 課題の作成
  • 課題の更新

どんなふうに使うの?

たとえば C# でこんなふうに使えます

プロジェクト一覧を取得する

    Backlog.Connect( URL, ユーザー名, パスワード );
    Console.WriteLine( "==== Project ====" );
    List<Project> projects = Project.GetAll();
    foreach ( Project project in projects ) {
        Console.WriteLine( "ID   : " + project.Id );
        Console.WriteLine( "Name : " + project.Name );
        Console.WriteLine( "Key  : " + project.Key );
        Console.WriteLine( "Url  : " + project.Url );
    }

課題(チケット)の一覧を取得する

    Console.WriteLine( "==== Issue ====" );
    List<Issue> issues = project.GetIssues();
    foreach ( Issue issue in issues ) {
        Console.WriteLine( "ID           : " + issue.Id );
        Console.WriteLine( "Summary      : " + issue.Summary );
        ...
    }

課題を作成する

    Issue issue = new Issue();
    issue.Summary = "単体テストで登録テスト";
    issue.Priority = "高";
    issue.Component = new string[] { "2つめのカテゴリー" };
    issue.Version = new string[] { "Webで追加したバージョン" };
    issue.Milestone = new string[] { "Webで追加したバージョン", "Webで追加したマイルストーン" };
    issue.ResolutionId = 2;

    Issue createdIssue = project.CreateIssue( issue );

課題を変更する

    Issue issue = project.GetIssues()[0];
    issue.Description += "単体テストで変更テスト\n";
    issue.Update( "こめんと" );

ユーザー一覧の取得

    List<User> users = project.GetUsers();
    foreach ( User user in users ) {
        Console.WriteLine( "ID   : " + user.Id );
        Console.WriteLine( "Name : " + user.Name );
    }

まとめ

機能、使い方がわかったので、次は Excel のアドインですね:)