ãµãã¹ã¯ã©ã€ãããã€ãã³ãæ°ãæå°ã«ãã
å¿ èŠãª Webhook ã€ãã³ãã®ã¿ããµãã¹ã¯ã©ã€ãããŠãã ããã ããã«ããããµãŒããŒã§å®è¡ããå¿ èŠãããäœæ¥éãæžããŸãã ã€ãã³ããžã®ãµãã¹ã¯ã©ã€ãã«é¢ãã詳现ã«ã€ããŠã¯ããwebhookã®äœæããšãwebhookã®ç·šéããåç §ããŠãã ããã
Webhook ã·ãŒã¯ã¬ããã䜿çšãã
èŠå
æ©å¯æ å ±ã誀ã£ãŠå ¬éãããªãããããã€ããŒãã® URL ã«ã¯æ©å¯æ å ±ãå«ããªãã§ãã ããã ããã«ã¯ãç¬èªã® API ããŒãšãã®ä»ã®èªèšŒè³æ Œæ å ±ãå«ãŸããŸãã Webhook ã®é ä¿¡ã GitHub ã«ãã£ãŠéä¿¡ãããæ¹ãããããŠããªãããšãæ€èšŒããã«ã¯ã代ããã«ãWebhook ã·ãŒã¯ã¬ããã䜿ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã
Webhook ã·ãŒã¯ã¬ããã¯ãšã³ããããŒã®é«ãã©ã³ãã ãªæååã«ããŠãã ããã ãµãŒããŒãã¢ã¯ã»ã¹ã§ããæ¹æ³ã§ Webhook ã·ãŒã¯ã¬ãããå®å šã«æ ŒçŽããŠãã ããã
HTTPS ãš SSL æ€èšŒã䜿çšãã
ãµãŒããŒã§ HTTPS æ¥ç¶ã䜿çšãããŠããããšã確èªããŠãã ããã æ¢å®ã§ã¯ãGitHub 㯠Webhook ã®ããªããªãŒã®éã« SSL èšŒææžãæ€èšŒããŸãã GitHub ã§ã¯ãSSL æ€èšŒãæå¹ã«ãããŸãŸã«ããããšããå§ãããŸãã
GitHub ã® IP ã¢ãã¬ã¹ãèš±å¯ãã
ãµãŒããŒã® IP èš±å¯äžèЧãèšå®ããGitHub ã Webhook ããªããªãŒã«äœ¿çšãã IP ã¢ãã¬ã¹ã远å ã§ããŸãã ããã«ããããµãŒããŒãžã®ãªãããŸãèŠæ±ããããã¯ã§ããŸãã
GET /meta
ãšã³ããã€ã³ãã䜿çšããŠãGitHub ã® IP ã¢ãã¬ã¹ã®çŸåšã®äžèЧãèŠã€ããããšãã§ããŸãã 詳ããã¯ããã¡ã¿ããŒã¿çš REST API ãšã³ããã€ã³ãããã芧ãã ããã GitHub 㯠IP ã¢ãã¬ã¹ã倿ŽããããšããããããIP èš±å¯äžèЧã宿çã«æŽæ°ããŠãã ããã
詳ããã¯ããGitHubã®IPã¢ãã¬ã¹ã«ã€ããŠããã芧ãã ããã
10 ç§ä»¥å ã«å¿çãã
Webhook ããªããªãŒãåä¿¡ããŠãã 10 ç§ä»¥å ã«ãµãŒããŒã 2XX å¿çãè¿ãããã«ããŠãã ããã ãµãŒããŒã®å¿çã«ãã以äžã®æéããããå ŽåãGitHub ã¯æ¥ç¶ãçµäºããããªããªãŒã倱æãããšèŠãªããŸãã
ã¿ã€ã ãªãŒã«å¿çããããã«ãWebhook ãã€ããŒããéåæçã«åŠçãããã¥ãŒãèšå®ã§ããŸãã ãµãŒããŒã¯ãWebhook ãåä¿¡ãããšãã«å¿çãããã®åŸã® Webhook ããªããªãŒããããã¯ããããšãªããããã¯ã°ã©ãŠã³ãã§ãã€ããŒããåŠçã§ããŸãã ããšãã°ãHookdeck ãªã©ã®ãµãŒãã¹ããResque (Ruby)ãRQ (Python)ãRabbitMQ (Java) ãªã©ã®ã©ã€ãã©ãªã䜿çšã§ããŸãã
ã€ãã³ãã®åŠçåã«ã€ãã³ãã®ã¿ã€ããšã¢ã¯ã·ã§ã³ã確èªãã
Webhook ã®ã€ãã³ãã®çš®é¡ã¯è€æ°ãããã€ãã³ãã®å€ãã«ã¯è€æ°ã®ã¢ã¯ã·ã§ã³ ã¿ã€ããããå¯èœæ§ããããŸãã GitHub ã¯ãåŒãç¶ãæ°ããã€ãã³ãã®çš®é¡ãšæ°ããã¢ã¯ã·ã§ã³ãæ¢åã®ã€ãã³ãã®çš®é¡ã«è¿œå ããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã€ããŒããåŠçããåã«ãWebhook ãã€ããŒãã®ã€ãã³ãã®çš®é¡ãšã¢ã¯ã·ã§ã³ã確èªããããã«ããŠãã ããã ã€ãã³ãã®çš®é¡ã決å®ããã«ã¯ãX-GitHub-Event
èŠæ±ããããŒã䜿çšããŸãã ã¢ã¯ã·ã§ã³ ã¿ã€ããæ±ºå®ããã«ã¯ãã€ãã³ã ãã€ããŒãã§æäžäœã® action
ããŒã䜿çšããŸãã
é ä¿¡ãããªãã£ãå Žåã«åé ä¿¡ãã
ãµãŒããŒãããŠã³ããå Žåã¯ããµãŒããŒã埩垰ããããé ä¿¡ãããªãã£ã Webhook ãåé ä¿¡ããŠãã ããã 詳ããã¯ããWebhook ã®åé ä¿¡ããã芧ãã ããã
X-GitHub-Delivery
ããããŒã䜿çšãã
ãªãã¬ã€æ»æã§ã¯ãäžé©åãªã¢ã¯ã¿ãŒã Webhook é
ä¿¡ãã€ã³ã¿ãŒã»ããããé
ä¿¡ãåéä¿¡ããŸãã ãªãã¬ã€æ»æããä¿è·ããããã«ãX-GitHub-Delivery
ããããŒã䜿çšããŠåé
ä¿¡ãã€ãã³ãæ¯ã«äžæã§ããããšã確èªã§ããŸãã
ã¡ã¢
åé
ä¿¡ãèŠæ±ããå ŽåãX-GitHub-Delivery
ããããŒã¯å
ã®é
ä¿¡ãšåãã«ãªããŸãã