Skip to main content

OAuth アプリのレート制限

レート制限は、お使いの GitHub Enterprise Server インスタンス へのトラフィックのレートを制限し、すべてのユーザーに一貫したアクセスを確保するのに役立ちます。

メモ

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 Enterprise Server では、API レート制限は既定で無効になっています。 インスタンスのレート制限を確認するには、サイト管理者にお問い合わせください。

サイト管理者の場合は、インスタンスのレート制限を設定できます。 詳しくは、「Configuring rate limits (レート制限を構成する)」をご覧ください。

インスタンスの外部のユーザーまたは組織用にアプリを開発している場合、標準の GitHub レート制限が適用されます。 詳細については、GitHub Free ドキュメントの「REST API のレート制限」と「Rate limits and query limits for the GraphQL API」を参照してください。

参考資料