はじめに
本記事では、C#でRedmineを操作するための redmine-net-api を使ってRedmineのプロジェクトにチケットを追加する方法をまとめます。
redmine-net-api とは
C#上でRedmineを操作するためのライブラリです。
プロジェクトの作成やチケットの作成など様々な操作が可能なライブラリです。
詳細はこちらを参照ください。
redmine-net-api を使ってRedmineのプロジェクトにチケットを追加する
redmine-net-api を使って指定したIDのプロジェクトにチケットを追加する方法を示します。
まずは、redmine-api (ライブラリ名とnugetパッケージ名が少し異なるようです) をインストールします。VisualStudio上で.NETのプロジェクト(コンソールアプリなど)を作成後に作成したプロジェクトを右クリックし、[Nugetパッケージの管理]メニューをクリックします。その後、redmine-api という名称のパッケージを検索し、インストールします。
次にチケットを追加するコードを書いていきます。以下がコードです。
using Redmine.Net.Api;
using Redmine.Net.Api.Types;
var hostName = "ホスト名";
var userName = "ユーザー名";
var password = "パスワード";
// Redmineを操作するためのマネージャー作成
RedmineManager manager = new RedmineManager(hostName, userName, password);
// チケット追加対象のプロジェクトのID特定
var targetProjectIdentifier = "プロジェクトの識別子";
var projects = manager.GetObjects<Project>();
var targetProject = projects.FirstOrDefault(project => project.Identifier == targetProjectIdentifier);
if (targetProject == null) return;
var targetProjectId = targetProject.Id;
// 追加するチケットの情報を作成
Issue issue = new Issue();
// チケットを追加するプロジェクトを設定
issue.Project = IdentifiableName.Create<IdentifiableName>(targetProjectId);
// チケット名と説明文の設定
issue.Subject = "サンプル用チケット";
issue.Description = "サンプル用に作成したチケットです。";
// チケットの追加
manager.CreateObject(issue);
各処理について詳しく見ていきます。
以下の部分では、Redmineにアクセスするためのホスト名と認証するためのユーザー名、パスワードを使って、Redmineアクセス用のマネージャーを作成しています。マネージャー作成と同時に認証も行われるため、これ以降はマネージャー経由でチケットの追加などができるようになります。
var hostName = "ホスト名";
var userName = "ユーザー名";
var password = "パスワード";
// Redmineを操作するためのマネージャー作成
RedmineManager manager = new RedmineManager(hostName, userName, password);
以下の部分では、チケットを追加するプロジェクトのIDを特定しています。
// チケット追加対象のプロジェクトのID特定
var targetProjectIdentifier = "プロジェクトの識別子";
var projects = manager.GetObjects<Project>();
var targetProject = projects.FirstOrDefault(project => project.Identifier == targetProjectIdentifier);
if (targetProject == null) return;
var targetProjectId = targetProject.Id;
プロジェクトのIDを特定するためには、プロジェクトの識別子が必要になります。プロジェクトの識別子は以下のプロジェクトの設定画面で確認できる文字列のことです。
以下の部分では、特定したプロジェクトのIDを使ってチケットの情報を作成し、その情報を使ってチケットを追加しています。具体的にはチケットのオブジェクトを作り、そのオブジェクトを使ってマネージャー経由でチケットを追加しています。
// 追加するチケットの情報を作成
Issue issue = new Issue();
// チケットを追加するプロジェクトを設定
issue.Project = IdentifiableName.Create<IdentifiableName>(targetProjectId);
// チケット名と説明文の設定
issue.Subject = "サンプル用チケット";
issue.Description = "サンプル用に作成したチケットです。";
// チケットの追加
manager.CreateObject(issue);
さいごに
C#でRedmineを操作するための redmine-net-api を使ってRedmineのプロジェクトにチケットを追加する方法をまとめました。
プロジェクトの作成やチケットの作成がかなり手軽にできるため、便利だなと思いました。