White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

JIRA Advent Calendar 13?日目 APIについて

なんか急にmike_neckさんから話振られて「えっ?」と思ううちに日記の日になりまして。
http://twitter.com/mike_neck/status/145843922206343168:twitter:detail:left
JIRA Advent Calendar 2011 http://atnd.org/events/22899


ホントはもっとちゃんと作りたいものがあるんですが、なかなか急に作り出そうとしても難しいですね。


(ところで私は今年のはじめにプラグイン勉強会を開いた程度にはRedmine派なのですが、大人の都合でJIRAも使っていたりしてます。最近はJIRAの方が多いです)


前フリは置いといてJIRAの話として、APIについてでも軽く書いておきます。

JIRAにはRESTのAPIがあって、これ使ってデータが取得できます。Basic認証とかでもいけるみたいですね。
http://docs.atlassian.com/jira/REST/latest/

例:


こんなチケットのタイトルを取ってみます。

$ curl -u user:pass http://site/rest/api/2.0.alpha1/issue/TASK-1

結果

{"expand":"html","self":"http://site/rest/api/2.0.alpha1/issue/TASK-1","key":"TASK-1","fields":{"summary":{"name":"summary","type":"java.lang.String","value":"test1"},(以下略)


perlでも軽く取ってみます。ってかなりインチキなやり方ですが。

use JSON;
my $st=`curl -u sample:sample http://site/rest/api/2.0.alpha1/issue/TASK-1`;
my $data = decode_json($st);
print $data->{fields}->{summary}->{value}."\n";
yuki@squeeze-1:~/jira_api$ perl jira_api.pl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3120 0 3120 0 0 22425 0 --:--:-- --:--:-- --:--:-- 22446
test1

チケットのタイトルを取ることが出来ました。


これを使って、RedmineのWorktimeプラグイン*1みたいなものが作れないかと考えています。


ここまで失敗したこと
pythonでやる→なぜかBasic認証通らない。Realmの問題?