GitHub Apps
ãç»é²ããããã® URL ãã©ã¡ãŒã¿ãŒã«ã€ããŠ
URL ãã©ã¡ãŒã¿ãŒã䜿ããšãæ°ãã GitHub App ç»é²ã®æ§æèšå®ãäºåã«éžæããã«ã¹ã¿ã ãªã³ã¯ãä»ã®ãŠãŒã¶ãŒãšå ±æã§ããŸãã ãã®ãªã³ã¯ã䜿ããšããŠãŒã¶ãŒã¯ GitHub App ã®ç»é²ããŒãžã«ç§»åããŸããããã§ã¯ãURL ã«å«ãã URL ãã©ã¡ãŒã¿ãŒã«åŸã£ãŠã¢ããªèšå®ãäºåå ¥åãããŠããŸãã
ãã®ã¢ãããŒããæå¹ã«å©çšã§ããã®ã¯ã顧客ã«ç¹å®ã®ä»æ§ã§å人çšã¢ã«ãŠã³ããŸã㯠organization ã«ã¢ããªãèšå®ããŠãããããã€ã³ãã°ã¬ãŒã¿ãŒããŸã㯠GitHub Marketplace ããã¢ããªãã€ã³ã¹ããŒã«ã§ããªã GitHub Enterprise Server ã䜿çšããŠãã顧客ãšãªããŸãã
ãããã¯ãGitHub App ãããã§ã¹ããäœæããããšãã§ããŸãã 詳ããã¯ãããããã§ã¹ããã GitHub App ãç»é²ããããã芧ãã ããã
ã¡ã¢
ãã®èšäºã«ã¯ãgithub.com
ãã¡ã€ã³ã䜿ãã³ãã³ããŸãã¯äŸãå«ãŸããŠããŸãã octocorp.ghe.com
ãªã©ãå¥ã®ãã¡ã€ã³ã§ GitHub ã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã
ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿çšããã«ã¹ã¿ã æ§æ URL ã®äœæ
å人çšãŸã㯠Organization ã¢ã«ãŠã³ãäžã§ GitHub App çšã®ã«ã¹ã¿ã æ§æ URL ãäœæããã«ã¯ã次ã®ããŒã¹ URL ã®åŸã«ã¯ãšãª ãã©ã¡ãŒã¿ãŒã远å ããŸãã
- å人çšã¢ã«ãŠã³ãã§ã¢ããªãç»é²ããå Žåã¯ã
https://github.com/settings/apps/new
ã« URL ãã©ã¡ãŒã¿ãŒã远å ããŸã - çµç¹ã¢ã«ãŠã³ãã§ã¢ããªãç»é²ããå Žåã¯ã
https://github.com/organizations/ORGANIZATION/settings/apps/new
ã« URL ãã©ã¡ãŒã¿ãŒã远å ããŸããORGANIZATION
ã¯ã顧客ã«ã¢ããªãç»é²ããŠãããããçµç¹ã®ååã«çœ®ãæããŠãã ããã - Enterprise ã¢ã«ãŠã³ãã§ã¢ããªãç»é²ããå Žåã¯ã
https://github.com/enterprises/ENTERPRISE/settings/apps/new
ã« URL ãã©ã¡ãŒã¿ãŒã远å ããŸããENTERPRISE
ãã顧客ã«ã¢ããªãç»é²ããŠããã Enterprise ã®ååã«çœ®ãæããŸãã
ã¢ããªç»é²ããŒãžäžã§ãã¢ããªãç»é²ãããŠãŒã¶ãŒã¯ãäºåéžæãããŠããå€ãç·šéããŠãããã¢ããªãéä¿¡ããããšãã§ããŸãã URL ã¯ãšãªæååã«å¿
é ã®å€ã®ãã©ã¡ãŒã¿ãŒ (name
ãªã©) ãå«ããªãå Žåã¯ãã¢ããªãç»é²ãããŠãŒã¶ãŒããã¢ããªãç»é²ããåã«å€ãå
¥åããå¿
èŠããããŸãã
ããšãã°ã次㮠URL ã§ã¯ãå人çšã¢ã«ãŠã³ãã§ octocat-github-app
ãšããååã®æ°ãããããªã㯠ã¢ããªãç»é²ããŸãã ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿çšãããšãURL ã«ãã£ãŠèª¬æãšã³ãŒã«ãã㯠URL ãäºåã«æ§æãããŸãã ãŸããchecks
ã«å¯ŸããŠèªã¿åããšæžã蟌ã¿ã®ã¢ã¯ã»ã¹èš±å¯ãéžã°ããwebhook_active
ãã©ã¡ãŒã¿ãŒã䜿çšã㊠Webhook ãã¢ã¯ãã£ãã«ãããcheck_run
ãš check_suite
ã® Webhook ã€ãã³ãã«ãµãã¹ã¯ã©ã€ããããã€ã³ã¹ããŒã«æã«ãŠãŒã¶ãŒã®èªå¯ (OAuth) ãèŠæ±ãããªãã·ã§ã³ãéžã°ããŸãã
https://github.com/settings/apps/new?name=octocat-github-app&description=An%20Octocat%20App&callback_urls[]=https://example.com&request_oauth_on_install=true&public=true&checks=write&webhook_active=true&events[]=check_run&events[]=check_suite
GitHub App configuration parameters
以äžã®ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿ããšãGitHub App ç»é²ã®ç¹å®ã®æ§æãéžæã§ããŸãã ããšãã°ãã¢ããªã« "octocat-github-app" ãšããååãä»ããå Žåãã¯ãšãªæååã«ã¯ name=octocat-github-app
ãå«ããããŸãã
ãã©ã¡ãŒã¿ãŒå | ã¿ã€ã | 説æ |
---|---|---|
name | string | GitHub App ã®ååã ã¢ããªã±ãŒã·ã§ã³ã«ã¯ç°¡æœã§æå¿«ãªååãä»ããŸãããã ã¢ããªåãèªåèªèº«ã®ãŠãŒã¶ãŒåãçµç¹åãšåãå Žåãé€ããGitHub äžã®æ¢åãŠãŒã¶ãŒãšåãååãã¢ããªã«äœ¿ãããšã¯ã§ããŸããã ã€ã³ãã°ã¬ãŒã·ã§ã³ãåäœãããšããŠãŒã¶ã€ã³ã¿ãŒãã§ãŒã¹äžã«ã¢ããªã±ãŒã·ã§ã³åã®ã¹ã©ãã°ã衚瀺ãããŸãã |
description | string | GitHub App ã®èª¬æã |
url | string | GitHub App ã®ããŒã ããŒãžã®å®å šãª URLã |
callback_urls | array of strings | ã€ã³ã¹ããŒã«ã®æ¿èªåŸã«ãªãã€ã¬ã¯ãããå®å
šãª URLã æå€§ 10 åã®ã³ãŒã«ãã㯠URL ãæå®ã§ããŸãã ãããã® URL ã¯ãã¢ããªã§ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãçæããå¿
èŠãããå Žåã«äœ¿çšãããŸãã ããšãã°ãcallback_urls[]=https://example.com&callback_urls[]=https://example-2.com ã®ããã«ããŸãã 詳ããã¯ãããŠãŒã¶ãŒæ¿èªã³ãŒã«ãã㯠URL ã«ã€ããŠããã芧ãã ããã |
request_oauth_on_install | boolean | ã¢ããªã OAuth ãããŒã䜿ã£ãŠãŠãŒã¶ãŒãèªå¯ããå Žåããã®ãªãã·ã§ã³ã true ã«èšå®ããŠããŠãŒã¶ãŒãã€ã³ã¹ããŒã«æã«ã¢ããªãèªå¯ããŠãã¹ããããçç¥ã§ããããã«ããããšãã§ããŸãã ãã®ãªãã·ã§ã³ãéžãã å Žåãsetup_url ã¯å©çšã§ããªããªãããŠãŒã¶ãŒã¯ã¢ããªã®ã€ã³ã¹ããŒã«åŸã«èšå®ããã callback_url ã«ãªãã€ã¬ã¯ããããŸãã |
setup_url | string | GitHub App ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«åŸã«è¿œå ã»ããã¢ãããå¿ èŠãªå Žåã«ããªãã€ã¬ã¯ãããå®å šãª URLã 詳ããã¯ããã»ããã¢ãã URL ã«ã€ããŠããã芧ãã ããã |
setup_on_update | boolean | true ã«èšå®ãããšãããšãã°ãªããžããªã远å ãåé€ãããåŸãªã©ããŠãŒã¶ãŒã¯ã€ã³ã¹ããŒã«ãæŽæ°ããããšãã®ã»ããã¢ãã URL ã«ãªãã€ã¬ã¯ãããŸãã |
public | boolean | GitHub App ãå
¬éããå Žå㯠true ã«èšå®ããã¢ããªã®ææè
ã®ã¿ãã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ false ã«èšå®ããŸãã ãã®ãã©ã¡ãŒã¿ãŒã¯ãEnterprise ãææããã¢ããªã«ã¯é©çšãããŸããã |
webhook_active | boolean | Webhook ãæå¹ã«ããã«ã¯ãtrue ã«èšå®ããŸãã æ¢å®ã§ã¯ãWebhook ã¯ç¡å¹ã«ãªã£ãŠããŸãã |
webhook_url | string | webhook ã€ãã³ããã€ããŒããéä¿¡ããå®å šãª URLã |
events | array of strings | Webhook ã€ãã³ãã äžéšã® Webhook ã€ãã³ãã§ã¯ãæ°ãã GitHub App ãç»é²ãããšãã«ã€ãã³ããéžã¶åã«ããªãœãŒã¹ã«å¯Ÿãã read ãŸã㯠write ã¢ã¯ã»ã¹èš±å¯ãå¿
èŠã§ãã 詳现ã«ã€ããŠã¯ããGitHub App Webhook ã€ãã³ããã»ã¯ã·ã§ã³ãåç
§ããŠãã ããã ã¯ãšãªæååã§ã¯ãè€æ°ã®ã€ãã³ããéžæã§ããŸãã ããšãã°ãã events[]=public&events[]=label ãã®ããã«å
¥åããŸãã |
single_file_name | string | ããã¯ãã¢ããªã±ãŒã·ã§ã³ãä»»æã®ãªããžããªã®åäžã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããããã®ãã¹ã³ãŒãã®çãæš©éã§ãã single_file ã¢ã¯ã»ã¹èš±å¯ã read ãŸã㯠write ã«èšå®ãããšããã®ãã£ãŒã«ã㯠GitHub App ã管çããåäžã®ãã¡ã€ã«ãžã®ãã¹ãæå®ããŸãã è€æ°ã®ãã¡ã€ã«ã管çããå¿
èŠãããå Žåã¯ãäžã® single_file_paths ãã芧ãã ããã |
single_file_paths | array of strings | ã¢ããªã±ãŒã·ã§ã³ãããªããžããªå
ã®æå®ããæå€§ 10 ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã single_file ã¢ã¯ã»ã¹èš±å¯ã read ãŸã㯠write ã«èšå®ãããšããã®é
å㯠GitHub App ã管çããæå€§ 10 åã®ãã¡ã€ã«ãžã®ãã¹ãæ ŒçŽã§ããŸãã ãããã®ãã¡ã€ã«ã«ã¯ãããããå¥ã®ã¢ã¯ã»ã¹èš±å¯ãããããããã§ã®ã§ã¯ãªãããã¹ãŠã« single_file ã§èšå®ãããŠããåãã¢ã¯ã»ã¹èš±å¯ãäžããããŸãã 2 ã€ä»¥äžã®ãã¡ã€ã«ãæ§æãããŠãããšãAPI 㯠multiple_single_files=true ãè¿ãããã以å€ã®å Žå㯠multiple_single_files=false ãè¿ããŸãã |
GitHub App ã®æš©é
ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿ã£ãŠãGitHub App ç»é²ã®ã¢ã¯ã»ã¹èš±å¯ãéžæããããšãã§ããŸãã URL ã¯ãšãª ãã©ã¡ãŒã¿ãŒã®å Žåã¯ãã¯ãšãª ãã©ã¡ãŒã¿ãŒåãšããŠã¢ã¯ã»ã¹èš±å¯åã䜿çšããã¯ãšãªå€ããã®ã¢ã¯ã»ã¹èš±å¯ã»ããã«äœ¿çšã§ããå€ã®ããããã«èšå®ããŸãã
ããšãã°ãcontents
ã®ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã§ "èªã¿åããšæžã蟌ã¿ã®ã¢ã¯ã»ã¹èš±å¯" ãéžã¶ã«ã¯ãã¯ãšãªæååã« contents=write
ãå«ããŸãã blocking
ã®ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã§ "èªã¿åããšæžã蟌ã¿ã®ã¢ã¯ã»ã¹èš±å¯" ãéžã¶ã«ã¯ãã¯ãšãªæååã« blocking=read
ãå«ããŸãã checks
ã®ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã§ [No access] ãéžã¶ã«ã¯ãã¯ãšãªæååã« checks
ã¢ã¯ã»ã¹èš±å¯ãå«ããªãã§ãã ããã
ææããã¢ã«ãŠã³ãã Enterprise ãŸã㯠Enterprise ææã® organization ã§ãªãå Žåã¯ãEnterprise ã¢ã¯ã»ã¹èš±å¯ãèŠæ±ã§ããŸããã
ã¢ã¯ã»ã¹èš±å¯ãš GitHub Apps ã®è©³çްã«ã€ããŠã¯ããGitHub ã¢ããªã®ã¢ã¯ã»ã¹èš±å¯ãéžæããããåç §ããŠãã ããã 䜿çšã§ããã¢ã¯ã»ã¹èš±å¯ãšãã©ã¡ãŒã¿ãŒåãããååã®äžèЧã«ã€ããŠã¯ããå人çšã¢ã¯ã»ã¹ ããŒã¯ã³ã管çããããåç §ããŠãã ããã
GitHub App webhook ã€ãã³ã
ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿çšãããšãGitHub App Webhook ãæå¹ã«ããWebhook URL ãæå®ããç¹å®ã®ã€ãã³ãã® Webhook ãã€ããŒããåä¿¡ããããã«ã¢ããªããµãã¹ã¯ã©ã€ãã§ããŸãã
GitHub App Webhook ãæå¹ã«ããã«ã¯ãã¯ãšãªæååå
ã§ webhook_active=true
ã䜿çšããŸãã Webhook ã€ãã³ã ãã€ããŒãã®éä¿¡å
ãšãã URL ãå®å
šã«æå®ããã«ã¯ãã¯ãšãªæååå
ã§ webhook_url
ã䜿çšããŸãã ã¢ããªãç¹å®ã® Webhook ãã€ããŒã ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããã«ã¯ãã¯ãšãª ãã©ã¡ãŒã¿ãŒåãšã㊠events[]
ã䜿çšããã¯ãšãªå€ã Webhook ã€ãã³ãã®ååã«èšå®ããŸãã å¯èœæ§ããã Webhook ã€ãã³ããšãåã€ãã³ãããµãã¹ã¯ã©ã€ãããããã«å¿
èŠãª GitHub App ã¢ã¯ã»ã¹èš±å¯ã®è©³çްã«ã€ããŠã¯ããWebhook ã®ã€ãã³ããšãã€ããŒãããåç
§ããŠãã ããã
ããšãã°ãGitHub App ããµãã¹ã¯ã©ã€ãããŠãã³ããã ã³ã¡ã³ãã«é¢é£ããã¢ã¯ãã£ããã£ã® Webhook ãã€ããŒããåä¿¡ããã®ã§ããã°ãã¯ãšãªæååã« &webhook_active=true&webhook_url=https://example.com&events[]=commit_comment
ãå«ããŸãã commit_comment
Webhook ã€ãã³ãã§ã¯ã"Contents" ãªããžããªã®ã¢ã¯ã»ã¹èš±å¯ãšããŠå°ãªããšãèªã¿åãã¬ãã«ã®ã¢ã¯ã»ã¹æš©ã GitHub App ã«ä»äžãããŠããããšãå¿
èŠã§ãã®ã§æ³šæããŠãã ããã ãã®ãããã¯ãšãªæååã«ã¯ãcontents
ã¢ã¯ã»ã¹èš±å¯ã read
ãŸã㯠write
ã«èšå®ããããã®ãã©ã¡ãŒã¿ãŒãå«ããå¿
èŠããããŸãã 詳现ã«ã€ããŠã¯ããGitHub ã®ã¢ã¯ã»ã¹èš±å¯ããåç
§ããŠãã ããã
ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿çšã㊠Webhook ã·ãŒã¯ã¬ããã®å€ãèšå®ããããšã¯ã§ããŸããã ã¢ããªã«ãã® Webhook ãã»ãã¥ãªãã£ã§ä¿è·ããããã®ã·ãŒã¯ã¬ãããå¿ èŠãªå Žåã¯ãã¢ããªãç»é²ãããŠãŒã¶ãŒã GitHub UI ã§ã·ãŒã¯ã¬ããã®å€ãèšå®ããå¿ èŠããããŸãã
Webhook ãš GitHub Apps ã®è©³çްã«ã€ããŠã¯ããGitHub Apps ã§ã® Webhook ã®äœ¿çšããåç §ããŠãã ããã