Redmineã®REST APIã使ã£ã¦ã¿ã。
ãã¾ããã§ã¯ããã¾ãã、主ã«ä½¿ã£ã¦ããRedmineã®ãã¼ã¸ã§ã³ãä¸ãã£ãã®ã§、ãã£ã¨REST APIã使ããç°å¢ã«ãªãã¾ãã。
#å人çã«REST APIã使ã£ããã¼ã«ãä½ã£ã¦ã¿ãæ´»åã¯ãã¦ããã®ã§ãã、ã¡ã¤ã³ã®ç°å¢ã§ã¯å¯¾å¿ãã¦ããªãã£ãã®ããã£ã¦、ã¢ããã¼ã·ã§ã³ãç¶ãã¦ã¾ããã§ãã…。
ã§ããã°å¨ãã«ãå©ç¨ããã、å¿ç¨ããã、è¯ãã¢ã¤ãã£ã¢ãåºãã¦ããããããªãã¨æã£ãã®ã§、ã¾ãã¯ã©ããªæãã§ä½¿ããã、ã¨ãããµã³ãã«ãä½ããã¨ã«ãã¾ãã。
* * *
ãã±ããã®åç §ã¯Webããè¡ããã¨ã®æ¹ãå¤ãã®ã§、ãã£ã±ããã±ãããä½ããµã³ãã«ãã。
åèã«ããã¦ããã ããREST APIã«ã¤ãã¦ã®è¨è¿°ã¯、Redmineæ¬å®¶ã¨、r-labsã®ãµã¤ãã®æ¥æ¬èªè¨³ã«ãªãã¾ã。(ãããã¨ããããã¾ã!)
- http://www.redmine.org/projects/redmine/wiki/Rest_api (Redmine.orgã®Wiki)
- http://www.r-labs.org/projects/r-labs/wiki/Redmine_REST_API (r-labsã®æ¥æ¬èªè¨³)
åä½ç¢ºèªã¯、daipresentsããã®è¨äºãåèã«ããã¦ããã ãã¾ãã。ãã¡ãããããã¨ããããã¾ã!
daipresentsããã®è¨äºã§ã¯、RESTã試ãã¯ã©ã¤ã¢ã³ãã¨ãã¦、RESTClient ã使ããã¦ãã¾ãã。ãã¡ãã¯ä½¿ã£ããã¨ãç¡ãã£ãã®ã§、ãã¦ã³ãã¼ããã¦ã¿ãã¨ãã、ãªãã»ã©、ããã便å©ã§ãã。
ãããã®å ´åã¯、ãã¤ãã¯Fiddler2 ã使ã£ã¦ããã®ã§、åèã¾ã§ã«Fiddler2ã§ã®ã¹ã¯ãªã¼ã³ã·ã§ãããè¼ãã¦ããã¾ã。
1æç®ãPOSTã¡ã½ããã§ãªã¯ã¨ã¹ããçæããã¨ãã。2æç®ãã¬ã¹ãã³ã¹ã®ç»é¢ã§ã。
ãã¾ããã±ãããåºæ¥ãã¨、Status Code 201ãè¿ã£ã¦ãã¾ã。ã¾ã、ã¬ã¹ãã³ã¹æ¬æã«ã、ãã±ããã®IDãå«ããXMLãè¿ã£ã¦ãã¾ã。
åä½ç¢ºèªãã§ããã®ã§、ããã、ãã±ãããä½æããããã°ã©ã ã…ã¨æã£ãã®ã§ãã、RubyãPerl, Pythonã¨ãã£ãã©ã¤ãã©ãªã®çµã¿è¾¼ã¿ç¶æ³ã¯、ãµã¼ãã®ç°å¢ã«ãã£ã¦ã¾ã¡ã¾ã¡。Perlããå ¥ãã¦ããªãã¨ãããããã¾ã。
ç¾å¨ã®ãã±ããä½æã®APIã¯、æ·»ä»ãã¡ã¤ã«ä»ãã§ã®ä½æãåºæ¥ã、çµå±ã®ã¨ããXMLãPOSTãããã¨ã«ãªãã®ã§、ã·ã³ãã«?ã«、curlã¨Shellã使ã£ãã¹ã¯ãªãããä½ããã¨ã«ãã¾ãã。
- ã¹ã¯ãªããã¯ãã¡ã:
https://github.com/akiko-pusu/misc/blob/master/misc/redmine_postIssue.sh
ãã±ããä½æãã¡ã¤ã³ã§、Statusã®æå®ãã«ãã´ãªã®æå®ã¯éè¦ãã¦ããªãã£ãã®ã§、ãªãã·ã§ã³è¨å®ã¯è¡ã£ã¦ãã¾ãã。Shellãåèã«ã«ã¹ã¿ãã¤ãºããã°、Updateãã«ãã´ãªè¨å®ãå¯è½ãã¨æãã¾ã。(å®ã¯ã¾ã Updateã¯è©¦ãã¦ãªãã®ã§、ã§ãããã¾ã追è¨ãã¾ã)
使ãæ¹ã¯、ãã®ãããªæãã§ã。
$redmine_postIssue.sh –u REDMINEã®URL –k APIãã¼ \
–p ããã¸ã§ã¯ãID(çªå·ãããªãèå¥å) \
-t ãã©ãã«ã¼ID(çªå·) –s ã¿ã¤ãã« \
-d ãã±ããæ¬æ
ãã±ããä½ææã«、ä½æè ãå¥éæå®ã§ããã、æ å½è ãæå®ã§ãã¾ã。ãã 、ãã£ã±ãæ å½è ã¨ããã©ãã«ã¼ã¨ãã®IDããã¡ãã¨ç¥ã£ã¦ããªãã¨ããã¾ãã。
APIã使ã£ã¦ãªãããªã¯ã©ã¤ã¢ã³ããä½ãã£ã¦、åããªãã¨æã£ã¦ãã¾ã(^^;
大å¤ãã°ããããã¼ã«ã§å½æ¹ã®CIã«å©ç¨ããã¦ããã ãã¦ããã¾ã。
è¿ä¿¡åé¤ããããªãã、æ®å¿µãªãã¨ã«、debian6,debian7ã®ç°å¢ã§ã¯ãã±ããæ¬æã«æ¹è¡ã³ã¼ããæ··ãããã¨ãã§ãã¾ããã§ãã。
ãã®åå ã¯curlã³ãã³ãã§-dãªãã·ã§ã³ã使ç¨ãã¦ããããã ã¨æãã¾ã。
ãã®ãªãã·ã§ã³ã®å ´å、æ¹è¡æåãã¨ãã®ããã¦ãã¾ãã¾ã。
ãããªãã¨ã、ç§ã®ç°å¢ã§ã¯--data-binaryãªãã·ã§ã³ã«ç½®ãæãããã¨ã§æå¾ éãåä½ãã¾ãã。
以ä¸å ±åã¾ã§。
æ¿å£ãã¾、åãã¾ãã¦、ããã«ã¡ã¯!
åé¤ã³ã¡ã³ããããã¨ããããã¾ã!
debianã§ã¯æ¤è¨¼ãã¦ããªãã£ãã®ã§ãã、ä¸è¨ãã¼ã«ãå®è¡ãã (curlãå®è¡ãã)ãµã¼ããdebianã¨ãããã¨ã§ãã。
ã¹ã¯ãªããã®æ³¨ææ¸ãã«ã、ä½è ã®æ³å®ç°å¢ãæè¨ãã¦ããã¾ãã。
ã¾ã、åé¡ããªããããªã、--data-binaryãªãã·ã§ã³ã¸ã®åãæ¿ããå®æ½ãã¦ã¿ã¾ã。
ãããã¨ããããã¾ãã!