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みたいなものが作れないかと考えています。