OAuth apps から GitHub Apps に移行する利点
GitHub Apps は、GitHub との統合方法として推奨されています。 GitHub Apps には、OAuth apps に比べて多くの利点があります。
- きめ細かいアクセス許可、リポジトリ アクセスの選択肢、有効期間の短いトークンなどの強化されたセキュリティ機能
- ユーザーから独立して、またはユーザーに代わって動作できること
- スケーラブルなレート制限
- 組み込みの Webhook
詳しくは、「GitHub App の作成について」をご覧ください。
OAuth app から GitHub App への切り替え
次の手順では、OAuth app から GitHub App に移行する方法の概要を示します。 具体的な手順は、アプリによって異なります。
1. OAuth app を確認する
OAuth app のコードを確認し直してください。 OAuth app が行う API 要求は、GitHub App に対して選ぶアクセス許可を決定するのに役立ちます。
さらに、OAuth apps では使用できない REST API エンドポイントがいくつかあります。 「GitHub App インストール アクセス トークンで使用できるエンドポイント」を参照して、使用する REST エンドポイントが GitHub Apps で使用可能であることを確認します。
2. GitHub App を登録する
新しい GitHub App を登録します。 詳しくは、「GitHub App の登録」をご覧ください。
OAuth app と比較すると、GitHub App の設定はより細かく制御できます。 いくつかの重要な追加は次のとおりです。
-
常にユーザーの代理として動作する OAuth app とは異なり、GitHub App は、それ自体として、またはユーザーの代理としてアクションを実行するように設定できます。 新しい GitHub App でユーザーの代理としてのアクションを実行しない場合は、"ユーザーの識別と承認" に関する設定をスキップできます。 詳しくは、「GitHub アプリでの認証について」をご覧ください。
-
Webhook を使用すると、特定のイベントが発生したときに GitHub App に通知できます。 リポジトリまたは組織ごとに API を使って構成する必要がある OAuth apps の Webhook とは異なり、GitHub Apps には Webhook が組み込まれています。 GitHub App を登録するときに、受信する Webhook イベントを選ぶことができます。 さらに、OAuth app が現在ポーリングを使用してイベントが発生したかどうかを判断している場合は、代わりに Webhook へのサブスクライブによって GitHub App をレート制限内に維持することを検討してください。 詳しくは、「GitHub Apps での Webhook の使用」をご覧ください。
-
OAuth app の場合、ユーザーがアプリを承認したときにスコープを要求します。 GitHub App では、アプリ設定でアクセス許可を指定します。 これらのアクセス許可はスコープよりも細かく、アプリに必要なアクセス許可のみを選ぶことができます。 さらに、これらのアクセス許可は REST API エンドポイントと Webhook イベントにマップされているため、特定の REST API エンドポイントにアクセスしたり、特定の Webhook にサブスクライブしたりするために GitHub App に必要なアクセス許可を簡単に判断できます。 現在、GraphQL 要求に関するアクセス許可は文書化されていません。 詳しくは、「GitHub アプリのアクセス許可を選択する」をご覧ください。