ã¡ã¢
ãã®èšäºã¯ãGitHub Marketplace ã§ã®ã¢ããªã®å ¬éã«ã®ã¿é©çšãããŸãã GitHub Marketplace ã§ã® GitHub Actions ã®å ¬éã«ã€ããŠè©³ããã¯ããGitHub Marketplaceã§ã®ã¢ã¯ã·ã§ã³ã®å ¬éããã芧ãã ããã
èŠå
GitHub Marketplaceã§GitHub AppãæäŸããŠããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯OAuthã®èªå¯ãããŒã«åŸã£ãŠãŠãŒã¶ãèå¥ããªããã°ãªããŸããã ãã®ãããŒããµããŒãããããã«ãå¥ã®OAuth appãèšå®ããå¿ èŠã¯ãããŸããã 詳现ã«ã€ããŠã¯ãããŠãŒã¶ãŒã«ä»£ãã£ãŠ GitHub ã¢ããªã§èªèšŒããããåç §ããŠãã ããã
ã¹ããã 1. æåã®è³Œå ¥ãšwebhookã€ãã³ã
顧客㯠GitHub Marketplace ã¢ããªãè³Œå ¥ããåã«ãç»é²æ å ±ãã©ã³ãéžæããŸãã 顧客ã¯ãã¢ããªã±ãŒã·ã§ã³ã®è³Œå ¥ãèªåã®å人ã¢ã«ãŠã³ãããè¡ãã®ãããããã¯Organizationã¢ã«ãŠã³ãããè¡ãã®ããéžæããŸãã
[泚æãå®äºããŠã€ã³ã¹ããŒã«éå§] ãã¯ãªãã¯ããããšã§ã顧客ã¯è³Œå ¥ãå®äºããŸãã
ãã®åŸãGitHub ã¯ãmarketplace_purchase Webhook ãš purchased ã¢ã¯ã·ã§ã³ãã¢ããªã«éä¿¡ããŸãã
marketplace_purchase webhook ããã® effective_date ããã³ marketplace_purchase ãªããžã§ã¯ããèªã¿åã£ãŠã顧客ã賌å
¥ãããã©ã³ãè«æ±ãµã€ã¯ã«ã®éå§ææãããã³æ¬¡ã®è«æ±ãµã€ã¯ã«ã®éå§ææãç¹å®ããŸãã
ã¢ããªã§ç¡æè©ŠçšçãæäŸãããŠããå Žåã¯ãwebhook ãã marketplace_purchase[on_free_trial] 屿§ãèªã¿åã£ãŠãã ããã å€ã true ã§ããå Žåãã¢ããªã¯ç¡æè©Šçšçã®éå§æ¥ (effective_date) ãšç¡æè©Šçšçã®çµäºæ¥ (free_trial_ends_on) ã远跡ããå¿
èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ã® UI ã«ç¡æãã©ã€ã¢ã«ã®æ®æ¥æ°ã衚瀺ããã®ã«ã¯ãfree_trial_ends_on ã®æ¥ä»ã䜿ã£ãŠãã ããã ããã¯ããããŒãæ¯æã UI ã®ã©ã¡ããã§è¡ãããšãã§ããŸãã ç¡æè©Šçšçãçµäºããåã«ãã£ã³ã»ã«ãåŠçããæ¹æ³ã«ã€ããŠã¯ãããã©ã³ã®ãã£ã³ã»ã«ã®åŠçããåç
§ããŠãã ããã ç¡æè©Šçšçã®æå¹æéãåãããšãã«ç¡æè©Šçšçãææãã©ã³ã«ç§»è¡ããæ¹æ³ã«ã€ããŠã¯ãããã©ã³å€æŽã®åŠçããåç
§ããŠãã ããã
marketplace_purchase ã€ãã³ã ãã€ããŒãã®äŸã«ã€ããŠã¯ããGitHub Marketplace APIã®ããã®webhookã€ãã³ãããåç
§ããŠãã ããã
æé 2. ã€ã³ã¹ããŒã«
ã¢ããªã GitHub App ã§ããå ŽåãGitHub ã¯é¡§å®¢ã«å¯ŸããŠã¢ããªã®è³Œå ¥æã«ãã®ã¢ããªãã¢ã¯ã»ã¹ã§ãããªããžããªã®éžæãæ±ããŸãã GitHub ã¯ã顧客ãéžãã ã¢ã«ãŠã³ãã«ã¢ããªãã€ã³ã¹ããŒã«ããŠãéžæããããªããžããªãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸãã
GitHub App ã®èšå®ã§ã»ããã¢ãã URL ãæå®ããŠããå Žåããã®æç¹ã§ãGitHub ã¯é¡§å®¢ããã® URL ã«ãªãã€ã¬ã¯ãããŸãã Setup URLãæå®ããŠããªãå ŽåãGitHub Appã®è³Œå ¥ãåŠçããããšã¯ã§ããŸãã
ã¡ã¢
[Setup URL] ã¯ãGitHub App ã®èšå®ã§ã¯çç¥å¯èœãšãããŠããŸãããã¢ããªã GitHub Marketplace ã§æäŸãããå Žåã¯å¿ é ã®ãã£ãŒã«ãã§ãã 詳ããã¯ããã»ããã¢ãã URL ã«ã€ããŠããã芧ãã ããã
ã¢ããªã OAuth app ã§ããå ŽåãGitHub ã¯ãããã©ãã«ãã€ã³ã¹ããŒã«ããŸããã 代ããã«ãGitHub ã¯ãGitHub Marketplace ã®ãªã¹ãã§æå®ãããŠããã€ã³ã¹ããŒã« URL ã«ã顧客ããªãã€ã¬ã¯ãããŸãã
顧客ã OAuth app ã賌å
¥ãããšãGitHub ã¯é¡§å®¢ãéžæãããŠãã URL (ã»ããã¢ãã URL ãŸãã¯ã€ã³ã¹ããŒã« URL) ã«ãªãã€ã¬ã¯ããããã® URL ã®ã¯ãšãª ãã©ã¡ãŒã¿ãŒ marketplace_listing_plan_id ã«ã¯é¡§å®¢ãéžãã äŸ¡æ Œãã©ã³ãå«ãŸããŸãã
æé 3. æ¿èª
顧客ãã¢ããªã±ãŒã·ã§ã³ãè³Œå ¥ãããã顧客ãOAuthã®èªå¯ãããŒã«éããªããã°ãªããŸããã
-
ã¢ããªã GitHub App ã§ããå Žåã¯ãGitHub ã顧客ãã»ããã¢ãã URL ã«ãªãã€ã¬ã¯ããããšããã«ãèªå¯ãããŒãéå§ãããŸãã ããŠãŒã¶ãŒã«ä»£ãã£ãŠ GitHub ã¢ããªã§èªèšŒãããã®æé ã«åŸããŸãã
-
ã¢ããªã OAuth app ã§ããå Žåã¯ãGitHub ã顧客ãã€ã³ã¹ããŒã« URL ã«ãªãã€ã¬ã¯ããããšããã«ãèªå¯ãããŒãéå§ãããŸãã ãOAuth ã¢ããªã®æ¿èªãã®æé ã«åŸããŸãã
ã©ã¡ãã®çš®é¡ã®ã¢ããªã§ããæåã®æé ã¯é¡§å®¢ã https://github.com/login/oauth/authorize ã«ãªãã€ã¬ã¯ãããããšã§ãã
顧客ãèªå¯ãå®äºãããšãã¢ããªã±ãŒã·ã§ã³ã¯é¡§å®¢ã®OAuthã¢ã¯ã»ã¹ããŒã¯ã³ãåãåããŸãã ãã®ããŒã¯ã³ã¯ã次ã®ã¹ãããã§å¿ èŠã«ãªããŸãã
ã¡ã¢
顧客ãç¡æãã©ã€ã¢ã«ã§èªå¯ããå Žåã¯ãææãã©ã³ã®å Žåãšåãã¢ã¯ã»ã¹æš©ãä»äžããŠãã ããã ãããã®é¡§å®¢ã¯ãç¡æã®æéãçµäºãããææãã©ã³ã«ç§»è¡ãããŸãã
æé 4. 顧客ã¢ã«ãŠã³ãã®ããããžã§ãã³ã°
ã¢ããªã±ãŒã·ã§ã³ã¯ããã¹ãŠã®æ°èŠè³Œå
¥ã«å¯ŸããŠé¡§å®¢ã¢ã«ãŠã³ããããããžã§ãã³ã°ããªããã°ãªããŸããã ãã®é¡§å®¢ã«å¯ŸããŠåãåã£ãã¢ã¯ã»ã¹ ããŒã¯ã³ (ãã¹ããã 3. èªå¯ãã䜿ã£ãŠ GET /user/marketplace_purchases ãšã³ããã€ã³ããåŒã³åºããŸãã å¿çã«ã¯é¡§å®¢ã® account æ
å ±ãå«ãŸããç¡æè©Šçšç (on_free_trial) ã«å«ãŸããŠãããã©ããã瀺ãããŸãã ãã®æ
å ±ã䜿ã£ãŠãã»ããã¢ãããšããããžã§ãã³ã°ãå®äºãããŠãã ããã
ã¡ã¢
GitHub Marketplace ã®çŸåšã®ããŒãžã§ã³ã§ã¯ãã客æ§ãã¢ããªã® Web ãµã€ãã§è³Œå ¥ããã¢ã«ãŠã³ããæ¢ã«ãæã¡ã®å ŽåãGitHub Marketplace ããã¢ããªãè³Œå ¥ã§ããŸãã ã¢ããªãè³Œå ¥ãã顧客ã®ã¢ã«ãŠã³ããæ¢ã«èšå®ãããŠããå Žåã¯ã"äºé" è³Œå ¥ã GitHub Support ã«å ±åããŠãã ããã
è³Œå ¥ãOrganizationã®ããã®ãã®ã§ããããŠãŒã¶ããšã§ãããªãã顧客ã«å¯ŸããŠè³Œå ¥ãããã¢ããªã±ãŒã·ã§ã³ã«ã¢ã¯ã»ã¹ã§ããOrganizationã®ã¡ã³ããŒã®éžæãæ±ããããšãã§ããŸãã
Organizationã®ã¡ã³ããŒãã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãåãåãæ¹æ³ã¯ãã«ã¹ã¿ãã€ãºã§ããŸãã ããã€ãã®æšå¥šäºé ãæ¬¡ã«ç€ºããŸãã
å®é¡æé: çµç¹ã«å¯ŸããŠå®é¡æéã§ã®è³Œå ¥ãè¡ããããªããã¢ããªã±ãŒã·ã§ã³ã¯ API çµç±ã§ çµç¹ã®å šã¡ã³ããŒãååŸããŠãçµç¹ã®ç®¡çè ã«å¯ŸããŠã©ã®ã¡ã³ããŒãã€ã³ãã°ã¬ãŒã¿ãŒåŽã§ææãŠãŒã¶ãšãªããã®éžæãæ±ããããšãã§ããŸãã
ãŠãããåäœã®æé: ãŠããã ã·ãŒãããšã«ããããžã§ãã³ã°ããæ¹æ³ã® 1 ã€ã¯ããŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«ãã°ã€ã³ãããšãã«ã·ãŒãã䜿çšã§ããããã«ããããšã§ãã 顧客ãã·ãŒãã«ãŠã³ãã®éŸå€ã«éããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãŠãŒã¶ã«å¯ŸããŠGitHub MarketplaceãéããŠã¢ããã°ã¬ãŒãããå¿ èŠãããããšãèŠåã§ããŸãã