メモ
OAuth app ではなく GitHub App を構築することを検討してください。 インストール アクセス トークンを使う GitHub Apps のレート制限は、リポジトリの数と組織のユーザーの数に応じてスケーリングされます。 逆に、OAuth apps のレート制限は低く、スケーリングされません。 詳細については、「GitHub Apps と OAuth アプリの違い」および「GitHub App の作成について」を参照してください。
警告
OAuth apps には、1 時間あたり 2,000 件のアクセス トークン要求というレート制限が適用されます。 アプリケーションがこの制限を超えると、新しいアクセス トークンを生成する以降の要求は一時的にブロックされ、エラー応答が返される可能性があります。 これにより一時的な停止が発生する可能性があります。 サービス中断の可能性を回避できるように、実装は適切に計画してください。
OAuth apps のレート制限について
OAuth apps は、ユーザーがアプリを承認した後、ユーザー アクセス トークンを使って要求を行うことで、ユーザーに代わって動作します。 詳しくは、「OAuth アプリの承認」をご覧ください。
これらのユーザー アクセス トークンの生成は、レート制限の対象になります。 さらに、これらのユーザー アクセス トークンを使って行われた API 要求もレート制限の対象になります。
サインイン中のユーザーのレート制限
OAuth apps は常にトークンをキャッシュする必要があり、ユーザーをサインインさせる必要はほとんどありません。 ユーザーが繰り返しサインインする場合はバグの兆候である可能性があり、最もよく見られるのはアプリと GitHub の間の無限ループです。 アプリが 1 時間以内にユーザーに 10 回サインインした場合、同じ時間内の次のサインインでは、アプリケーションの再承認が必要になります。 これにより、ユーザーはアプリが非常に多くのトークンを生成していることを認識できるようになります。それ以外の場合は、無限ループになる可能性がある部分にブレークを挿入します。 この 10 回の_サインイン_レート制限は、OAuth apps にも適用される 10 _トークン_の制限とは異なります。 10 トークンの制限については、「OAuth アプリの承認」を参照してください。
API のレート制限
GitHub では、OAuth app で特定の期間内に REST API に対して行える要求の件数に制限を設けます。 また、特定の期間内に OAuth app で GraphQL API に対して実行できるクエリのポイント値に制限を設けます。 これらの主要なレート制限に加えて、GitHub でもセカンダリ レート制限が適用される場合があります。 これらの制限は、不正使用やサービス拒否攻撃を防ぐのに役立ち、すべてのユーザーがシステムを使用できるようにします。
詳細については、「REST API のレート制限」および「Rate limits and query limits for the GraphQL API」を参照してください。