Skip to main content

OAuth アプリのレート制限

レート制限は、GitHub.com へのトラフィックのレートを制限し、すべてのユーザーに一貫したアクセスを確保するのに役立ちます。

メモ

GitHub Appの代わりにOAuth appを構築することを検討してください。 インストール アクセス トークンを使用する GitHub Apps のレート制限は、リポジトリの数と組織のユーザー数に応じてスケーリングされます。 逆に、 OAuth apps はレート制限が低く、スケーリングされません。 詳細については、「GitHub アプリと OAuth アプリの違い」および「GitHub アプリの作成について」を参照してください。

警告

OAuth apps は、 1 時間あたり 2,000 件のアクセス トークン要求のレート制限の対象となります。 アプリケーションがこの制限を超えると、新しいアクセス トークンを生成する以降の要求は一時的にブロックされ、エラー応答が返される可能性があります。 これにより一時的な停止が発生する可能性があります。 サービス中断の可能性を回避できるように、実装は適切に計画してください。

OAuth apps のレート制限について

OAuth apps ユーザーがアプリを承認した後、ユーザー アクセス トークンを使用して要求を行うことで、ユーザーの代わりに動作します。 詳しくは、「OAuth アプリの承認」をご覧ください。

これらのユーザー アクセス トークンの生成は、レート制限の対象になります。 さらに、これらのユーザー アクセス トークンを使って行われた API 要求もレート制限の対象になります。

サインイン中のユーザーのレート制限

OAuth apps は常にトークンをキャッシュする必要があり、ユーザーのサインインが必要になることはほとんどありません。 ユーザーが繰り返しサインインすると、バグを示す可能性があり、最も頻繁にアプリと GitHubの間の無限ループと見なされます。 アプリが 1 時間以内にユーザーに 10 回サインインした場合、同じ時間内の次のサインインでは、アプリケーションの再承認が必要になります。 これにより、ユーザーはアプリが非常に多くのトークンを生成していることを認識できるようになります。それ以外の場合は、無限ループになる可能性がある部分にブレークを挿入します。 この 10 個のサインイン_レート制限は、_ にも適用される 10 OAuth apps制限とは異なります。 10 トークンの制限については、「OAuth アプリの承認」を参照してください。

API のレート制限

GitHub は、 OAuth app が特定の期間内に REST API に対して行うことができる要求の数に制限を設定します。 また、 OAuth app が特定の期間内に GraphQL API に対して実行できるクエリのポイント値に制限を設定します。 これらの主要なレート制限に加えて、 GitHub ではセカンダリ レート制限も適用される場合があります。 これらの制限は、不正使用やサービス拒否攻撃を防ぐのに役立ち、すべてのユーザーがシステムを使用できるようにします。

詳細については、「REST API のレート制限」および「GraphQL API のレート制限とクエリ制限」を参照してください。

参考資料