注: OAuth app の代わりに GitHub App をビルドするのを考慮します。 インストール アクセス トークンを使う GitHub Apps のレート制限は、リポジトリの数と組織のユーザーの数に応じてスケーリングされます。 逆に、OAuth apps のレート制限は低く、スケーリングされません。 詳細については、「GitHub Apps と OAuth アプリの違い」および「GitHub App の作成について」を参照してください。
OAuth apps のレート制限について
GitHub Enterprise Server では、レート制限は既定で無効になっています。 インスタンスのレート制限を確認するには、サイト管理者にお問い合わせください。
GitHub Enterprise Server インスタンスに対してレート制限が有効になっている場合、OAuth app が一定の時間内にサーバーに送信できる要求の数に制限があります。 この制限は、すべてのユーザーがシステムを使用できるようにするために役立ちます。
OAuth apps は、ユーザーがアプリを承認した後、ユーザー アクセス トークンを使って要求を行うことで、ユーザーに代わって動作します。 OAuth apps からのユーザー アクセス トークン要求は、OAuth トークンを使って認証されます。 詳しくは、「OAuth アプリの承認」を参照してください。
OAuth app のレート制限を決定する
現在のレート制限の状態は、いつでも REST API を使って確認できます。 詳しくは、「REST API のリソース」を参照してください。
OAuth apps では、次の 2 つのアクション中にレート制限が発生する可能性があります。
- ユーザーのサインイン時。
- API 呼び出しを行うとき。
OAuth apps は常にトークンをキャッシュする必要があり、ユーザーをサインインさせる必要はほとんどありません。 ユーザーが繰り返しサインインする場合はバグの兆候である可能性があり、最も一般的に見られるのはアプリと GitHub の間の無限ループです。 アプリが 1 時間以内にユーザーに 10 回サインインした場合、同じ時間内の次のサインインでは、アプリケーションの再承認が必要になります。 これにより、ユーザーはアプリが非常に多くのトークンを生成していることを認識できるようになります。それ以外の場合は、無限ループになる可能性がある部分にブレークを挿入します。 この 10 回の_サインイン_レート制限は、OAuth apps にも適用される 10 _トークン_の制限とは異なります。 10 トークンの制限については、「OAuth アプリの承認」を参照してください。
既定では、OAuth apps は、認証したユーザーあたり 5,000 件/時に制限されます。 ユーザーによって、またはユーザーが所有している personal access token によって認可されている OAuth apps からのすべての要求と、ユーザーの認証資格情報のいずれかで認証された要求は、そのユーザーについて 1 時間あたり 5,000 件の同じクォータを共有します。
参考資料
- GraphQL API ドキュメントの「Rate limits and node limits for the GraphQL API」