Skip to main content

GitHub App の䜜成に぀いお

GitHub Apps を䜿うず、統合を構築しおプロセスを自動化し、GitHub の機胜を拡匵できたす。

GitHub Apps に぀いお

GitHub App は、GitHub の機胜を操䜜しお拡匵するために構築できる統合の䞀皮です。 GitHub App を構築しお、ナヌザヌのサむンむンやサヌビス アカりントの䜜成を必芁ずせずに、柔軟性を提䟛し、プロセスの摩擊を軜枛できたす。

GitHub Apps の䞀般的なナヌス ケヌスは次のずおりです。

  • タスクたたはバックグラりンド プロセスの自動化
  • "GitHub によるサむンむン" のサポヌト。これにより、ナヌザヌは、自分の GitHub アカりントでサむンむンし、゚コシステムで ID を提䟛できたす
  • 開発ツヌルずしおの䜿甚。これにより、ナヌザヌは、GitHub App にサむンむンしお GitHub を操䜜できるようになりたす。その埌、アプリはナヌザヌに代わっお動䜜できたす
  • ツヌルたたは倖郚サヌビスず GitHub の統合

OAuth apps ず同様に、GitHub Apps でも OAuth 2.0 が䜿われ、ナヌザヌの代わりに動䜜するこずができたす。 OAuth apps ずは異なり、GitHub Apps はナヌザヌから独立しお動䜜するこずもできたす。

GitHub Apps は、Enterprise、organization、個人甚アカりントに盎接むンストヌルし、特定のリポゞトリぞのアクセス暩を付䞎できたす。 粟现なアクセス暩限が付いおおり、webhook が組み蟌たれおいたす。

たた、Enterprise 所有の GitHub App を䜜成するこずもできたす。これは、Enterprise たたは Enterprise 内の organization にのみむンストヌルできたす。たた、Enterprise のメンバヌのみが認可できたす。 詳しくは、「Enterprise 向け GitHub Apps の䜜成」をご芧ください。

デフォルトでは、Organization内のGitHub Appsの蚭定を管理できるのはOrganizationのオヌナヌだけです。 組織が所有する GitHub Apps の開発者蚭定を远加ナヌザヌが倉曎できるようにするため、所有者は GitHub App マネヌゞャヌのアクセス蚱可を付䞎できたす。 GitHub App マネヌゞャヌは、サヌド パヌティのアプリケヌションを管理できたせん。 Organization での GitHub App マネヌゞャヌの远加ず削陀の詳现に぀いおは、「Organizationのロヌル」を参照しおください。

GitHub App の䜜成

GitHub App を䜜成するには、たず GitHub App を登録する必芁がありたす。 詳しくは、「GitHub App の登録」をご芧ください。

次に、コヌドを蚘述しお GitHub App に機胜を远加する必芁がありたす。 GitHub App 登録の資栌情報を䜿っお、GitHub の API に察しお認蚌された芁求を行うこずができたす。 GitHub App のコヌドを蚘述する方法の詳现に぀いおは、「GitHub App のコヌドの蚘述に぀いお」を参照しおください。 認蚌された芁求を行う方法の詳现に぀いおは、「GitHub アプリでの認蚌に぀いお」を参照しおください。

GitHub App のコヌドを蚘述したら、アプリをどこかで実行する必芁がありたす。 アプリが Web サむトたたは Web アプリの堎合は、Azure App Service などのサヌバヌ䞊でアプリをホストできたす。 アプリがクラむアント偎アプリの堎合は、ナヌザヌのデバむス䞊で実行できたす。

GitHub App を䜿うには、Enterprise、organization、たたは個人甚アカりントにむンストヌルする必芁がありたす。

  • GitHub App がプラむベヌトの堎合は、アプリを所有するアカりントでのみむンストヌルできたす。
  • GitHub App が公開されおいる堎合、他のアカりントもむンストヌルできたす。
  • GitHub App が Enterprise によっお所有されおいる堎合は、その Enterprise たたはその Enterprise 内の任意の organization にむンストヌルできたす。サむンむンできるのは、その Enterprise のメンバヌのみです。

詳现に぀いおは、「独自の GitHub App のむンストヌル」および「GitHub App の共有」を参照しおください。

構築する GitHub App の皮類に぀いお

GitHub App を蚭蚈する方法は耇数あり、アプリに必芁な機胜に基づいおそれらを怜蚎する必芁がありたす。

ナヌザヌに代わっお実行する GitHub Apps

アプリでナヌザヌに代わっおアクションを実行する堎合は、認蚌にナヌザヌ アクセス トヌクンを䜿甚する必芁がありたす。 この皮類の芁求は "user-to-server" ず呌ばれるこずがあり、アプリに付䞎されたアクセス蚱可ずナヌザヌのアクセス蚱可によっおアプリが制限されるこずを意味したす。 このパタヌンでは、アプリでアクションが実行される前に、ナヌザヌがアプリを承認する必芁がありたす。 詳しくは、「ナヌザヌに代わっお GitHub アプリで認蚌する」をご芧ください。

GitHub App を䜿甚しお䜜成できる自動化 (ナヌザヌに代わっおアプリが実行する堎合) の䟋ずしおは、次のようなものがありたす。

  • ゚コシステムの ID プロバむダヌずしお GitHub を䜿甚する GitHub App。
  • GitHub ナヌザヌに圹立぀可胜性があるサヌビスを GitHub の䞊に远加する GitHub App。 GitHub Marketplace を通じお、たたはアプリを公開するこずで、他の開発者ずアプリを共有できたす。

独自で実行する GitHub Apps

アプリがナヌザヌの代わりではなく独自で実行する堎合、認蚌にむンストヌル アクセス トヌクンを䜿甚する必芁がありたす。 この皮類の芁求は、"server-to-server" ずも呌ばれるこずがあり、アプリに付䞎されたアクセス蚱可によっおアプリが制限されるこずを意味したす。 詳しくは、「GitHub App むンストヌルずしおの認蚌」をご芧ください。

GitHub App を䜿甚しお䜜成できる自動化 (アプリが独自で実行する堎合) の䟋ずしおは、次のようなものがありたす。

  • 特定の基準セットがある堎合に Webhook を䜿甚しおむベントに察応する GitHub App。 たずえば、fine-grained personal access token に察する芁求を確認するために、REST API ゚ンドポむントを䞭心に特定のポリシヌが䞎えられた芁求を承認する自動化を䜜成できたす。
  • リポゞトリの共同䜜成者に圹立぀ GitHub App。 たずえば、共同䜜成者が pull request を䜜成した埌たたはコメントを䜜成した埌、アプリで有甚なリ゜ヌスを投皿できたす。
  • 他の CI/CD ツヌルに提䟛するため、たたはリポゞトリから情報をプルするために、有効期間の短いトヌクンを生成する GitHub App。

Webhook に応答する GitHub Apps

アプリで GitHub のむベントに応答する必芁がある堎合、アプリで Webhook をサブスクラむブする必芁がありたす。 たずえば、pull request が開かれたずきにアプリにコメントを残すこずができたす。 詳しくは、「GitHub Apps での Webhook の䜿甚」をご芧ください。

珟圚、Enterprise にむンストヌルされたアプリは Webhook をサポヌトしおいないため、Webhook を受信するには organization にむンストヌルする必芁がありたす。

特定のアクションを実行できる GitHub Apps

GitHub App を蚭定する際、アプリの特定のアクセス蚱可を遞択できたす。 これらのアクセス蚱可によっお、アプリで GitHub API を䜿甚しお実行できるこず、サむンむンしたナヌザヌに代わっお実行できるこず、アプリで受け取るこずができる Webhook が決定されたす。 詳しくは、「GitHub アプリのアクセス蚱可を遞択する」をご芧ください。