å¼ç¤¾ãDialogPlayãéçºã»ãªãªã¼ã¹ãã¾ããï¼ãããï¼ï¼ãã£ãããï¼ï¼ä½¿ãããï¼ï¼ã§ããããã®è©±ã¯ä¸æ¦ããã¦ããã¦â¦
ç§ãã¡ã®ãã¼ã ã§ããDialogPlayã»ã©ããããªãã¨ãã§ããããã§ã¯ãªãã®ã§ããããã¼ã ã§ã®éçºã»éå¶ã®ãªãã§botã使ã£ã¦ãã¾ãã
ç¾å¨ãç§ã®æå±ãã¦ãããã¼ã ã§ã¯slackã使ã£ã¦ããã®ã§ãããããã¤ãbotãå
¥ã£ã¦ãã¦ãããããéçºã»éç¨ã«ã¡ãã£ã¨å½¹ç«ã¤ãµã ã·ã³ããã¦ãã¾ãã
ð¤ botãä½ããã£ã¦ããã
ç¾å¨åãã¦ããbotãã¡ã§ããç¾å¨3å¹ç¨¼åãã¦ãã¾ãã
æçãããååãbotã«ã¤ãã¦ãã¾ãã
- rascalãããï¼Created by @kawasima ããï¼
- ã³ãã¥ãã±ã¼ã·ã§ã³ãçã¿åºã
- 224ããï¼Created by @goronao ããï¼
- ã·ã¹ãã ãæ»ãã§ï¼æ»æ´»ç£è¦NGï¼ãããæãã¦ããã
- syobochirnã¡ããï¼Created by @syobochim â»ç§ã§ãï¼
- Jenkinsã§JOBãããããéç¥ãã
- 224ãããJenkins JOBã®éç¥ããããããªãããããªããã¨ãæãã
- ã©ã³ãã ãããã¯ææ¥æ±ºãã§ æ å½è ãã¢ãµã¤ã³ãã
ð¤ rascalãã
rascalããã«ã¤ãã¦ã¯ãâã®è¨äºã«è©³ç´°ãæ¸ãã¦ããã¾ãã
チーム力向上のためのエトセトラ - Qiita
ã¡ã³ãã¼ãslackã§è©±ããä¼è©±ãè¦ãã¦ãå½¢æ
ç´ è§£æããã¦ãã§ãè¨èãçµã¿åããã¦çºè¨ããã¦ããã¾ãã
ã¡ãã£ã¨ä»äºã«é£½ãã¦ãã¦ã䏿¯ãããããã¨ãªã£ãã¨ãï¼ã ããã14æ~15æã¨ããããï¼ã¯ãrascalããã¨ãã¼ã ã¡ã³ãã¼ãä¼è©±ãã¦ããããã¾ãã
ãã¼ã ã®é°å²æ°ãã»ã£ããããã¦ããã广ãããã®ã§ããã誰ã«ä¼¼ãã®ããä¹±æ´ãªè¨èã使ãããã«ãªã£ã¦ãã¾ãã¾ããã
ãã¼ã ã³ãã¥ãã±ã¼ã·ã§ã³ã®ãããã pic.twitter.com/epPJWdeOvC
— :SIer/kawasima (@kawasima) 2017å¹´4æ14æ¥
ð¤ 224ãã
ãã¡ã°ãçé¢ç®ã«åãã¦ããbotã§ãã
æ»æ´»ç£è¦ããã¦ãã¦ãã·ã¹ãã ã«åé¡ããã£ããæãã¦ããã¾ãã
AWSã§ã®ãæ»æ´»ç£è¦ã®æ§æã¯ãããªæãã«ãªã£ã¦ãã¾ãã
ð¤ syobochirnã¡ãã
- Jenkinsã§JOBãããããéç¥ãã¾ãã
- 224ãããJenkins JOBã®éç¥ããããããªãããããªããã¨ãæãã¾ãã
- ã©ã³ãã ãããã¯ææ¥æ±ºãã§ æ å½è ãã¢ãµã¤ã³ãã¾ãã
ð Jenkinsããã®éç¥
Slack Plugin - Jenkins - Jenkins Wikiã使ã£ã¦ãã¾ãã
å°å
¥ãã¨ã¦ãç°¡åã§ã30åãããã§slackéç¥ããããã¨ãã§ããããã«ãªãã¾ãããÙ©( ´Ï` )Ù
Jenkinsããã®éç¥ãslackã«é£ãã§æ¥ãã¨ãåé¡ããã£ãã¨ãã®æ¤ç¥ãæ©ããªããçµæ§ä¾¿å©ã§ãã
ãã ãéç¥ãå¤ãããã¨ãã¤ã¸ã¼ã«ãªããéç¥ãç¡è¦ããããã«ãªã£ã¦ãã¾ãã®ã§ãä½ãéç¥ãã¦ä½ãéç¥ããªããã¯è¦ç´ããããã¦ãã¾ãã
ð ã¢ãµã¤ã³ãã
ã¬ãã¥ã¼ä¾é ¼ãé害対å¿ãããã¨ãã«ãã©ã³ãã ã«æ
å½è
ãã¢ãµã¤ã³ããã¦ãã¾ããï¼ä¸äººã«è² è·ãããããªãããã«ãããããï¼
ãã¨ã¯ãå½çªå¶ã®ãã®ï¼å¤ä¼ã®å¸ä¼ã¨ãâ¦ï¼ã«å¯¾ãã¦ãæ
å½è
ããªãã¤ã³ããã¦ãã¾ããï¼å½çªå¶ã®ãã®ã£ã¦ãæ
å½ãå¿ãã¦ãã¨ãã«ãå¿ããªãã§ï¼ãã£ã¦ããå´ããå¿ãã¦ãï¼ãã£ã¦ãªãå´ãå¿ãæ¶èããæ°ãããã®ã§ãbotã§ãªãã¤ã³ããããã¨ã§éå¶ãã¹ãã¬ã¹ã¬ã¹ã«ãããï¼
ð§ ã©ããã£ã¦ä½ã£ãã
æåã¯slackbotã使ã£ã¦ããã®ã§ãããâã®çç±ãããslackclientã使ããã夿´ãã¾ãããï¼â»slackbotã§ãåããã¨ã§ãããï¼ã§ããã°ããããªãããï¼
- Jenkinséç¥ã®ãã¼ã¿æ§æã«å¯¾å¿ãããã£ã
- Threadå½¢å¼ã§ãªããè¿ãããã£ã
slackclientã®èª¬æã¯How To Write A Slack Bot — End to End – Julian Martinez – Mediumãããããããã£ãã§ãã
ð§ ããã£ããã¨
âã®slackclientã使ã£ãçç±ã®ä¸ã¤ãã«ãæ¸ãã¾ããããJenkinsããã®éç¥ã¯ãã¡ãã»ã¼ã¸ã®æ§æãæ®éã®ã¡ãã»ã¼ã¸ã¨ã¯éã£ã¦ããã®ã§ãã¡ãã£ã¨ã ãè¦å´ãã¾ããâ¦ï¼ï½¡ï¾(ï¾Â´Ï`ï¾)ï¾ï½¡
é常ã®ã¡ãã»ã¼ã¸ã¯ãããªæ§æã«ãªã£ã¦ããã®ã§ã "text" ã®å¤ãè¦ãã°ããç¨åº¦ã®å¦çãã§ãã¾ãã
slackbot㯠"text" ã®ã¡ãã»ã¼ã¸ãåå¾ããå ´åã«ãã¨ã¦ã便å©ã§ãã
{ 'type': 'message', 'user': 'xxxxxxx', 'text': 'ãã£ã»ã¼ï¼', 'team': 'yyyyyyy', 'channel': 'zzzzzz', 'event_ts': 'aaaaaa', 'ts': 'bbbbbb' }
ã§ããJenkinsããã®éç¥ã¯âã®ããã«ã¡ãã£ã¨ãªã·ã£ã¬ï¼ï¼ï¼ã«ãªã£ã¦ãã¦ãæ®éã®ã¡ãã»ã¼ã¸ã¨ã¯æ§æãéãã¾ããã
{ 'type': 'message', 'user': 'xxxxxxx', 'text': '', 'team': 'yyyyyyy', 'attachments': [ { 'fallback': 'ããã«ã¡ãã»ã¼ã¸ãå ¥ã - #25 Still Failing after 23 sec (<http://xxxxxx/jenkins/job/xxxxxx/25/|Open>)\n aaaaaa.', 'id': 1, 'color': 'D0D0D0', 'fields': [ { 'title': '', 'value': 'ããã«ã¡ãã»ã¼ã¸ãå ¥ã - #25 Still Failing after 23 sec (<http://xxxxxx/jenkins/job/xxxxxx/25/|Open>)\n aaaaaa.', 'short': False } ], 'mrkdwn_in': [ 'pretext', 'text', 'fields' ], 'from_url': 'https://cccc.slack.com/archives/~~~~~', 'is_share': True } ], 'channel': 'zzzzzz', 'event_ts': 'aaaaaa', 'ts': 'bbbbbb' }
slackclientã¯ã¡ãã»ã¼ã¸ãå²ã¨ãã®ã¾ã¾æä½ãããã¨ãã§ããã®ã§ããããªæãâã§ãã¼ã¿ãã¨ã£ã¦ããããªæ
å ±ãåå¾ããå¦çãããã¨ãã§ãã¾ããã
Threadã®ä½ç½®ãåå¾ã§ããã®ã§ãã¹ã¬ããå½¢å¼ã§è¿ä¿¡ãããã¨ããå¦çãç°¡åã§ããã
listdata = sc.rtm_read() attachments = listdata[0]["attachments"][0] message = attachments["fallback"] channel = listdata[0]["channel"] ts = listdata[0]["ts"]
ð¤ ãããã«
åãã¯botãè»½ãæ°æã¡ã§å°å
¥ããã®ã§ãããæå¤ã¨ä¾¿å©ã§ã©ãã©ãã¢ã¬ãããããã³ã¬ãããããã¨ãªã£ã¦ããã¾ããï¼
ä½ããèµ·ãã£ãæã«éç¥ããªã¢ã«ã¿ã¤ã ãªãã¨ããããéç¨æé æ¸ã¨ãã¦ä½¿ããã®ã¯ãã£ã±ã便å©ã§ãã
ããããè¨ã£ãããããè¿ããã¨ããåç´ãªbotãä½ãå ´åã¯ãslackbotããµã©ãã¨ä½ãã¦ããããããªãããªã¼ã¨æãã¾ãã
ã¾ããããã®ææ¥ã®ãã®æéã«ããè¨ã£ã¦æ¬²ããï¼ãï¼å½çªã®ãªãã¤ã³ãï¼ã¯ãbotã§ãªããªãã¤ã³ãã§ç°¡åã«è¨å®ã§ãã¡ããã®ã§ãããããå§ãã¦ãããã®ã§ã¯ã¨æãã¾ããï¼åèï¼slack の /remind 機能まとめ - Qiitaï¼