GitHub Apps の承認ついて
自分自身、自分の組織、GitHub Marketplace のいずれかが所有していないアプリケーションの場合、GitHub ID を検証したり、ユーザーに代わって GitHub を操作したりしなければならないことがあります。 これらのアプリケーションは、これらのアクションを実行するための GitHub App の認可を要求できます。 アプリケーションが認可を要求すると、GitHub ページにリダイレクトされ、アプリの認可を求められます。
GitHub App を承認するときには、そのアプリケーション所有者が信頼できること、およびそのアプリケーションからアクセスする情報を確認する必要があります。 承認の際に、次のすべてを実行するためのアクセス許可を GitHub App に与えるよう求められます。
- GitHub ID を確認する: 承認されると、GitHub App ではパブリック GitHub プロファイルを取得できるようになります。 アプリでは、プライベート アカウント情報を取得することもできます。 承認プロセス中に、GitHub によって、GitHub App からアクセスできるアカウント情報が通知されます。
- アクセスできるリソースを把握する: 承認されると、GitHub App では、アプリからもアクセスでき、ユーザーがアクセスできるリソースを判断できます。 アプリでは、たとえば、リポジトリの適切なリストを表示できるように、これを使用できます。
- ユーザーに代わって動作する: 承認されると、アプリケーションではユーザーの代わりに GitHub に対してタスクを実行できます。 これには、issue の作成や pull request へのコメントが含まれる場合があります。 詳細については、「ユーザーに代わる GitHub Apps の動作について」を参照してください。
承認はいつでも確認および取り消すことができます。 詳しくは、「GitHub Apps の承認の確認と取り消し」をご覧ください。
Note
organization で SAML SSO を使っていて、GitHub App を認可した後で organization のリソースが表示されない場合は、organization のアクティブな SAML セッションを開始した後で、アプリの再認可が必要な場合があります。 詳しくは、「SAML と GitHub Apps」をご覧ください。
ユーザーに代わる GitHub Apps の動作について
GitHub App を承認したら、アプリではユーザーに代わって動作することができます。 GitHub App がユーザーに代わって操作する状況は、GitHub App の目的と、使われているコンテキストによって異なります。 たとえば、統合開発環境 (IDE) では、GitHub App を使って、IDE を通じて作成した変更を GitHub のリポジトリにプッシュ バックするために、ユーザーに代わって操作できます。
GitHub App では、ユーザーとアプリの両方がアクセス許可を持つ操作のみを実行できます。 たとえば、ユーザーにリポジトリに対する書き込みアクセス権があるものの、GitHub App には読み取りアクセス権しかない場合、アプリがユーザーに変わって動作している場合でもそのアプリで読み取れるのはリポジトリのコンテンツのみとなります。 同様に、ユーザーがリポジトリ A
と B
にアクセスでき、GitHub App からはリポジトリ B
と C
にアクセスできる場合、アプリはユーザーに代わって動作しているときにのみ、B
リポジトリにアクセスできます。 GitHub App に付与されるアクセス許可の詳細については、「認可とインストールの違い」を参照してください。
アプリがユーザーに代わって動作している場合、そのアプリと連動してアクティビティがユーザーに属性付けされます。 たとえば、アプリがユーザーに代わってコメントを投稿した場合、GitHub UI には、ユーザーのアバター写真とアプリのアイデンティコン バッジが Issue イシューの作成者として表示されます。
同様に、アクティビティによって監査ログとセキュリティ ログ内の対応するエントリがトリガーされた場合、ログにはユーザーがアクターとして一覧表示されますが、"programmatic_access_type" が "GitHub App user-to-server token" であると示されます。
承認とインストールの違い
アカウントまたは組織に GitHub App をインストールするときに、アプリが要求した組織とリポジトリのリソースにアクセスするためのアクセス許可をアプリに付与します。 また、アプリからアクセスできるリポジトリも指定します。 インストール プロセス中、GitHub App により、付与するリポジトリと組織のアクセス許可が示されます。 さまざまなアクセス許可により GitHub App で実行可能となることの詳細については、「GitHub アプリのアクセス許可を選択する」を参照してください。
たとえば、GitHub App にリポジトリのメタデータの読み取り、イシューを書き込む権限を付与し、GitHub App にすべてのリポジトリへのアクセス権を付与できます。
GitHub App を承認する際に、アプリが要求したアカウントのアクセス許可に基づいて、GitHub アカウントへのアクセス権をそのアプリに付与します。 承認プロセス中に、アプリによりアプリがアカウントでアクセスできるリソースが示されます。 GitHub App を承認したら、ユーザーに代わって動作するアプリのアクセス許可も付与します。
たとえば、GitHub App に、メール アドレスを読み取ったり、gist を書き込んだりするアクセス許可を付与できます。
アプリを承認しなくても、GitHub App をインストールできます。 同様に、アプリをインストールしなくてもアプリを承認できます。
インストールの詳細については、「サード パーティからの GitHub App のインストール」、「個人向けアカウント用に GitHub Marketplace から GitHub アプリをインストールする」、「Organization の GitHub Marketplace から GitHub アプリをインストールする」を参照してください。