webhookã®äœæã«ã€ããŠ
Webhook ãäœæããŠããªããžããªãorganizationãGitHub Marketplace ã¢ã«ãŠã³ããGitHub Sponsors ã¢ã«ãŠã³ãããŸã㯠GitHub App ã§çºçãã GitHub ã«ã€ããŠã®ç¹å®ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãã§ããŸãã
ããŸããŸãªçš®é¡ã® Webhook ã®è©³çްã«ã€ããŠã¯ããWebhook ã®çš®é¡ããåç §ããŠãã ããã
Webhook ã€ãã³ãã®å®å šãªäžèЧã«ã€ããŠã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããåç §ããŠãã ããã
ãªããžããªã® Webhook ã®äœæ
ç¹å®ã®ãªããžããªã§çºçããã€ãã³ãããµãã¹ã¯ã©ã€ãããWebhook ãäœæã§ããŸãã ãã®ãªããžããªã« Webhook ãäœæããã«ã¯ããªããžããªã®ãªãŒããŒã§ãããããªããžããªã®ç®¡çè ã¢ã¯ã»ã¹æš©ãå¿ èŠã§ãã
GitHub Web ã€ã³ã¿ãŒãã§ã€ã¹ãŸã㯠REST API ã䜿ã£ãŠããªããžããªã® Webhook ãäœæã§ããŸãã REST API ã䜿çšããŠãªããžã㪠Webhook ãäœæããæ¹æ³ã®è©³çްã«ã€ããŠã¯ãããªããžã㪠ãŠã§ããã㯠㮠REST API ãšã³ããã€ã³ãããåç §ããŠãã ããã
-
GitHub ã§ããªããžããªã®ã¡ã€ã³ ããŒãžã«ç§»åããŸãã1. ãªããžããªåã®äžã«ãã [èšå®] ãã¯ãªãã¯ããŸãã [èšå®] ã¿ãã衚瀺ãããªãå Žåã¯ã [] ããããããŠã³ ã¡ãã¥ãŒãéžã³ã [èšå®] ãã¯ãªãã¯ããŸãã
1. å·ŠåŽã®ãµã€ãããŒã§ã [ Webhooks] ãã¯ãªãã¯ããŸãã1. [Webhook ã®è¿œå ] ãéžæããŸãã -
[ãã€ããŒã URL] ã®äžã«ããã€ããŒããåä¿¡ãã URL ãå ¥åããŸãã
-
å¿ èŠã«å¿ããŠã [ã³ã³ãã³ã ã¿ã€ã] ããããããŠã³ ã¡ãã¥ãŒãéžã³ãWebhook ãã€ããŒããåä¿¡ããããŒã¿åœ¢åŒãã¯ãªãã¯ããŸãã
- application/jsonã¯ãJSONãã€ããŒãã
POST
ãªã¯ãšã¹ãã®ããã£ãšããŠçŽæ¥é ä¿¡ããŸãã - application/x-www-form-urlencoded ã¯ãJSON ãã€ããŒãã payload ãšãããã©ãŒã ãã©ã¡ãŒã¿ãŒãšããŠéä¿¡ããŸãã
payload
- application/jsonã¯ãJSONãã€ããŒãã
-
å¿ èŠã«å¿ããŠã [ã·ãŒã¯ã¬ãã] ãã£ãŒã«ãã®äžã«ã
secret
ããŒãšããŠäœ¿çšããæååãå ¥åããŸãã ãšã³ããããŒã®é«ãã©ã³ãã ãªæååãéžæããŠãã ããã Webhook ã·ãŒã¯ã¬ããã䜿çšããŠãGitHub ããçºä¿¡ããããªã¯ãšã¹ãã®ã¿ã«åä¿¡ãå¶éããããšãã§ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã -
[ãã® webhook ãããªã¬ãŒããã€ãã³ããæå®ããŠãã ãã]ã§ãåä¿¡ãã Webhook ã€ãã³ããéžæããŸãã å¿ èŠãª Webhook ã€ãã³ãã®ã¿ããµãã¹ã¯ã©ã€ãããŠãã ããã
-
åå¥ã®ã€ãã³ããéžæããå Žåã¯ãWebhook ãããªã¬ãŒããã€ãã³ããéžæããŸãã
-
æ§æã远å ããçŽåŸã« Webhook ãã¢ã¯ãã£ãã«ããã«ã¯ã [ã¢ã¯ãã£ã] ãéžã³ãŸãã
-
[Webhook ã®è¿œå ] ãéžæããŸãã
æ°ãã Webhook ãäœæãããšãGitHub ããç°¡å㪠ping
ã€ãã³ããéä¿¡ãããŠãWebhook ãæ£ããèšå®ãããããšãããããŸãã 詳ããã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããã芧ãã ããã
çµç¹ã® Webhook ã®äœæ
ç¹å®ã®çµç¹ã§çºçããã€ãã³ãããµãã¹ã¯ã©ã€ããã Webhook ãäœæã§ããŸãã ãã®çµç¹ã§ Webhook ãäœæããã«ã¯ãçµç¹ã®ãªãŒããŒã§ããå¿ èŠããããŸãã
GitHub Web ã€ã³ã¿ãŒãã§ã€ã¹ãŸã㯠REST API ã䜿ã£ãŠãorganization ã® Webhook ãäœæã§ããŸãã REST API ã䜿çšã㊠organization ã® Webhook ãäœæããæ¹æ³ã®è©³çްã«ã€ããŠã¯ããçµç¹ã® Webhook ã® REST API ãšã³ããã€ã³ãããåç §ããŠãã ããã
- GitHub ã«ããä»»æã®ããŒãžã®å³äžé ã§ããããã£ãŒã«åçãã¯ãªãã¯ããŸãã
- [èªåã®çµç¹] ãã¯ãªãã¯ããŸãã
- çµç¹ã®å³åŽã«ãã [èšå®] ãã¯ãªãã¯ããŸãã
- å·ŠåŽã®ãµã€ãããŒã§ã [ Webhooks] ãã¯ãªãã¯ããŸãã1. [Webhook ã®è¿œå ] ãéžæããŸãã
- [ãã€ããŒã URL] ã®äžã«ããã€ããŒããåä¿¡ãã URL ãå ¥åããŸãã
- å¿
èŠã«å¿ããŠã [ã³ã³ãã³ã ã¿ã€ã] ããããããŠã³ ã¡ãã¥ãŒãéžã³ãWebhook ãã€ããŒããåä¿¡ããããŒã¿åœ¢åŒãã¯ãªãã¯ããŸãã
- application/jsonã¯ãJSONãã€ããŒãã
POST
ãªã¯ãšã¹ãã®ããã£ãšããŠçŽæ¥é ä¿¡ããŸãã - application/x-www-form-urlencoded ã¯ãJSON ãã€ããŒãã payload ãšãããã©ãŒã ãã©ã¡ãŒã¿ãŒãšããŠéä¿¡ããŸãã
payload
- application/jsonã¯ãJSONãã€ããŒãã
- å¿
èŠã«å¿ããŠã [ã·ãŒã¯ã¬ãã] ãã£ãŒã«ãã®äžã«ã
secret
ããŒãšããŠäœ¿çšããæååãå ¥åããŸãã ãšã³ããããŒã®é«ãã©ã³ãã ãªæååãéžæããŠãã ããã Webhook ã·ãŒã¯ã¬ããã䜿çšããŠãGitHub ããçºä¿¡ããããªã¯ãšã¹ãã®ã¿ã«åä¿¡ãå¶éããããšãã§ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã - [ãã® webhook ãããªã¬ãŒããã€ãã³ããæå®ããŠãã ãã]ã§ãåä¿¡ãã Webhook ã®çš®é¡ãéžæããŸãã å¿ èŠãª Webhook ã€ãã³ãã®ã¿ããµãã¹ã¯ã©ã€ãããŠãã ããã
- åå¥ã®ã€ãã³ããéžæããå Žåã¯ãWebhook ãããªã¬ãŒããã€ãã³ããéžæããŸãã
- æ§æã远å ããçŽåŸã« Webhook ãã¢ã¯ãã£ãã«ããã«ã¯ã [ã¢ã¯ãã£ã] ãéžã³ãŸãã
- [Webhook ã®è¿œå ] ãéžæããŸãã
æ°ãã Webhook ãäœæãããšãGitHub ããç°¡å㪠ping
ã€ãã³ããéä¿¡ãããŠãWebhook ãæ£ããèšå®ãããããšãããããŸãã 詳ããã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããã芧ãã ããã
GitHub Marketplace Webhookã®äœæ
GitHub Marketplace ã§çºè¡ããã¢ããªã«é¢é£ããã€ãã³ãããµãã¹ã¯ã©ã€ããã Webhook ãäœæã§ããŸãã GitHub Marketplace Webhook ãäœæã§ããã®ã¯ãã¢ããªã®ææè ãŸãã¯ã¢ã㪠ãããŒãžã£ãŒã®ã¿ã§ãã
- GitHub Marketplace äžèЧããŒãž ã«ç§»åããŸãã
- Webhook é ä¿¡ã衚瀺ãã GitHub Marketplace äžèŠ§ã®æšªã«ãã [ãªã¹ãã®ç®¡ç] ãã¯ãªãã¯ããŸãã
- ãµã€ãããŒã§ã[Webhook] ãã¯ãªãã¯ããŸãã
- [ãã€ããŒã URL] ã®äžã«ããã€ããŒããåä¿¡ãã URL ãå ¥åããŸãã
- å¿
èŠã«å¿ããŠã [ã³ã³ãã³ã ã¿ã€ã] ããããããŠã³ ã¡ãã¥ãŒãéžã³ãWebhook ãã€ããŒããåä¿¡ããããŒã¿åœ¢åŒãã¯ãªãã¯ããŸãã
- application/jsonã¯ãJSONãã€ããŒãã
POST
ãªã¯ãšã¹ãã®ããã£ãšããŠçŽæ¥é ä¿¡ããŸãã - application/x-www-form-urlencoded ã¯ãJSON ãã€ããŒãã payload ãšãããã©ãŒã ãã©ã¡ãŒã¿ãŒãšããŠéä¿¡ããŸãã
payload
- application/jsonã¯ãJSONãã€ããŒãã
- å¿
èŠã«å¿ããŠã [ã·ãŒã¯ã¬ãã] ãã£ãŒã«ãã®äžã«ã
secret
ããŒãšããŠäœ¿çšããæååãå ¥åããŸãã ãšã³ããããŒã®é«ãã©ã³ãã ãªæååãéžæããŠãã ããã Webhook ã·ãŒã¯ã¬ããã䜿çšããŠãGitHub ããçºä¿¡ããããªã¯ãšã¹ãã®ã¿ã«åä¿¡ãå¶éããããšãã§ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã - æ§æã远å ããçŽåŸã« Webhook ãã¢ã¯ãã£ãã«ããã«ã¯ã [ã¢ã¯ãã£ã] ãéžã³ãŸãã
- [Webhook ã®äœæ] ãã¯ãªãã¯ããŸãã
æ°ãã Webhook ãäœæãããšãGitHub ããç°¡å㪠ping
ã€ãã³ããéä¿¡ãããŠãWebhook ãæ£ããèšå®ãããããšãããããŸãã 詳ããã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããã芧ãã ããã
GitHub Sponsors Webhookã®äœæ
ã¹ãã³ãµãŒã«é¢é£ããã€ãã³ãããµãã¹ã¯ã©ã€ããã Webhook ãäœæã§ããŸãã ã¹ãã³ãµãŒãããã¢ã«ãŠã³ãã®ãªãŒããŒã®ã¿ãããã®ã¢ã«ãŠã³ãã®ã¹ãã³ãµãŒ Webhook ãäœæã§ããŸãã ã¹ãã³ãµãŒ Webhook ããµãã¹ã¯ã©ã€ãããŠããã€ãã³ãã®è©³çްã«ã€ããŠã¯ãsponsorship
Webhook ã€ãã³ããåç
§ããŠãã ããã
- ä»»æã®ããŒãžã§ãå³äžé ã«ãããããã¡ã€ã«ã®ç»åãã¯ãªãã¯ããæ¬¡ã« [ã¹ãã³ãµãŒ] ãã¯ãªãã¯ããŸãã
- Webhook ãäœæããã¢ã«ãŠã³ãã®æšªã«ãã [ããã·ã¥ããŒã] ãã¯ãªãã¯ããŸãã
- å·Šã®ãµã€ãããŒã§ã [Webhooks] ãã¯ãªãã¯ããŸãã
- [Webhook ã®è¿œå ] ãéžæããŸãã
- [ãã€ããŒã URL] ã®äžã«ããã€ããŒããåä¿¡ãã URL ãå ¥åããŸãã
- å¿
èŠã«å¿ããŠã [ã³ã³ãã³ã ã¿ã€ã] ããããããŠã³ ã¡ãã¥ãŒãéžã³ãWebhook ãã€ããŒããåä¿¡ããããŒã¿åœ¢åŒãã¯ãªãã¯ããŸãã
- application/jsonã¯ãJSONãã€ããŒãã
POST
ãªã¯ãšã¹ãã®ããã£ãšããŠçŽæ¥é ä¿¡ããŸãã - application/x-www-form-urlencoded ã¯ãJSON ãã€ããŒãã payload ãšãããã©ãŒã ãã©ã¡ãŒã¿ãŒãšããŠéä¿¡ããŸãã
payload
- application/jsonã¯ãJSONãã€ããŒãã
- å¿
èŠã«å¿ããŠã [ã·ãŒã¯ã¬ãã] ãã£ãŒã«ãã®äžã«ã
secret
ããŒãšããŠäœ¿çšããæååãå ¥åããŸãã ãšã³ããããŒã®é«ãã©ã³ãã ãªæååãéžæããŠãã ããã Webhook ã·ãŒã¯ã¬ããã䜿çšããŠãGitHub ããçºä¿¡ããããªã¯ãšã¹ãã®ã¿ã«åä¿¡ãå¶éããããšãã§ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã - æ§æã远å ããçŽåŸã« Webhook ãã¢ã¯ãã£ãã«ããã«ã¯ã [ã¢ã¯ãã£ã] ãéžã³ãŸãã
- [Webhook ã®äœæ] ãã¯ãªãã¯ããŸãã
Webhook ã®GitHub App ã®äœæ
GitHub App ã®ãªãŒããŒã¯ãã¢ããªã Webhook ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããŠãç¹å®ã®ã€ãã³ããçºçãããšãã«éç¥ãåãåãããšãã§ããŸãã ã¢ããªææè ã GitHub App ã®ã¢ã㪠ãããŒãžã£ãŒãæå®ããŠããå Žåãã¢ã㪠ãããŒãžã£ãŒã¯ã¢ããªã Webhook ã€ãã³ãã«ãµãã¹ã¯ã©ã€ããããããšãã§ããŸãã 詳ããã¯ããGitHub Apps ã§ã® Webhook ã®äœ¿çšããã芧ãã ããã
ããããã® GitHub App ã«ã¯ãäžã€ã® Webhook ããããŸãã GitHub App ãç»é²ãããšãã« webhook ãæ§æããããšããæ¢åã® GitHub App ç»é²ã® Webhook æ§æãç·šéããããšãã§ããŸãã
GitHub App ãç»é²ãããšãã« Webhook ãæ§æããæ¹æ³ã®è©³çްã«ã€ããŠã¯ããGitHub App ã®ç»é²ããåç §ããŠãã ããã
æ¢åã® GitHub App ç»é²ã® Webhook ãæ§æããã«ã¯:
-
GitHub ã®ä»»æã®ããŒãžã®å³äžé ã«ãããèªåã®ãããã¡ã€ã«åçãã¯ãªãã¯ããŸãã
-
ã¢ã«ãŠã³ãèšå®ã«ã¢ã¯ã»ã¹ããŠãã ããã
- å人çšã¢ã«ãŠã³ããææããã¢ããªã®å Žåã¯ã[èšå®] ãã¯ãªãã¯ããŸãã
- çµç¹ãææããã¢ããªã®å Žå:
- [èªåã®çµç¹] ãã¯ãªãã¯ããŸãã
- çµç¹ã®å³åŽã«ãã [èšå®] ãã¯ãªãã¯ããŸãã
-
å·ŠåŽã®ãµã€ãããŒã§ [ éçºè èšå®] ãã¯ãªãã¯ããŸãã
-
å·ŠåŽã®ãµã€ãããŒã§ã [GitHub Apps] ãã¯ãªãã¯ããŸãã
-
Webhook ãèšå®ãã GitHub App ã®æšªã«ãã [ç·šé] ãã¯ãªãã¯ããŸãã
-
[Webhook] ã§ [ã¢ã¯ãã£ã] ãéžæããŸãã
-
[Webhook URL] ã«ãã€ããŒããåä¿¡ãã URL ãå ¥åããŸãã
-
å¿ èŠã«å¿ããŠã [Webhook ã·ãŒã¯ã¬ãã] ãã£ãŒã«ãã«
secret
ããŒãšããŠäœ¿çšããæååãå ¥åããŸãã ãšã³ããããŒã®é«ãã©ã³ãã ãªæååãéžæããŠãã ããã Webhook ã·ãŒã¯ã¬ããã䜿ã£ãŠãçä¿¡ããèŠæ±ã GitHub ããçºä¿¡ããããã®ã®ã¿ã«å¶éã§ããŸãã 詳ããã¯ããWebhook é ä¿¡ãæ€èšŒããããã芧ãã ããã -
[倿Žãä¿å] ãã¯ãªãã¯ããŸãã
-
ãµã€ãããŒã§ã[ã¢ã¯ã»ã¹èš±å¯ãšã€ãã³ã] ãã¯ãªãã¯ããŸãã
-
GitHub App ã®ç»é²ã§éžæã§ããå ·äœç㪠Webhook ã€ãã³ãã¯ãã¢ããªã«å¯ŸããŠéžæããã¢ã¯ã»ã¹èš±å¯ã®çš®é¡ã«ãã£ãŠæ±ºãŸããŸãã ãŸããã¢ããªã«ä»äžããã¢ã¯ã»ã¹èš±å¯ãéžæããå¿ èŠããããŸããããã§ããã®ã¢ã¯ã»ã¹èš±å¯ã®ã»ããã«é¢é£ãã Webhook ã€ãã³ãã«ã¢ããªããµãã¹ã¯ã©ã€ãã§ããŸãã
ã»ã¯ã·ã§ã³ [ãªããžããªã®ã¢ã¯ã»ã¹èš±å¯]ã[çµç¹ã®ã¢ã¯ã»ã¹èš±å¯]ã[ã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹èš±å¯] ã§ãã¢ããªããµãã¹ã¯ã©ã€ãããã€ãã³ãã«å¿ èŠãªã¢ã¯ã»ã¹èš±å¯ãéžã³ãŸãã 詳ããã¯ããGitHub ã¢ããªã®ã¢ã¯ã»ã¹èš±å¯ãéžæããããã芧ãã ããã ã¢ã¯ã»ã¹èš±å¯ã倿Žããéã«èæ ®ãã¹ãäºé ã®è©³çްã«ã€ããŠã¯ããGitHub App ç»é²ã®å€æŽããåç §ããŠãã ããã
-
[ã€ãã³ãã«ãµãã¹ã¯ã©ã€ããã] ã§ãGitHub App ã§åãåããã Webhook ã€ãã³ããéžã³ãŸãã
-
[倿Žãä¿å] ãã¯ãªãã¯ããŸãã
REST API ã䜿çšããŠãGitHub App ã® Webhook ãäœæããããšãã§ããŸãã 詳ããã¯ããGitHub AppWebhook çš REST API ãšã³ããã€ã³ãããã芧ãã ããã