LoginSignup
12
11

More than 5 years have passed since last update.

RedmineのREST APIをWrapしてくれるJavaライブラリの調査

Last updated at Posted at 2014-10-30

これは何?

  • Jenkins から Redmineのチケット操作したいなーと考えて、REST APIを使って叩くことにした。
  • でも、REST APIをベタで作るのは馬鹿らしいのでLibraryを探した。
  • その結果、GETはできても、POST(UPDATE系)がダメっぽい事実。

JavaからRedmineを操作できるLibraryは?

※ 自分で作るきはさらさらない。
※ 一旦ライセンスとか気にしない。

Java での REST API の使用法 を参考に3つの選択肢があることを知る。

Library名 コメント
Jredmine × : よくわからない。Javaのライブラリではない?
redmine-jconnector × : redmine1.4 対象なのできつい。2.5.2 or 2.6 で動作させたい
Redmine Java API library from taskadapter ○ : 動いた。

Redmine Java API library from taskadapter の感想

Redmine Java API library from taskadapter の version : 2.0.0

GET系は動く模様。サンプルソース

RedmineManager mgr = RedmineManagerFactory.createWithApiKey(uri, apiAccessKey);

IssueManager issueManager = mgr.getIssueManager();
List<Issue> issues = issueManager.getIssues(projectKey, queryId);

for (Issue issue : issues) {
 System.out.println(issue.toString());
 System.out.println(issue.getDescription());
}

POST系(UPDATE系)が動かない模様

※ しかもExceptionも何もなく、無反応。プログラムは正常に終了するがRedmine側に反映されない模様。
※ Redmine2.5.2 でも 2.6.0でも両方試したが。ダメだった。
※ APIの呼び方が悪いのか・・・?悪いなら指摘いただきたき。

Issue i = issues.get(0);
i.setSubject("CHANGED");
i.setAssignee(currentUser);
i.setNotes("FUGA");
mgr.getIssueManager().update(i);

ただし、Deleteは動く模様。

mgr.getIssueManager().deleteIssue(0); #動いた

コメント

  • JenkinsだからJavaでやるみたいな短絡的発想。じゃなくて、Rubyとかで書けばいいのにって言うことなのかな。だって、Java好きなんだもん。
12
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11