GitHub Apps のレート制限について
GitHub は、GitHub App が一定の時間内にサーバーに送信できる要求の数に制限を設けます。 この制限は、不正使用やサービス拒否攻撃を防ぐのに役立ち、すべてのユーザーがシステムを使用できるようにします。
GitHub は、API の可用性を確保するため、一部のアクションに二次的なレート制限を追加して適用する場合があります。 ベスト プラクティスに従い、以下に示すレート制限ガイドラインの範囲内に留めることで、二次的なレート制限を回避できます。 二次的なレート制限について詳しくは、「REST API を使用するためのベスト プラクティス」と「REST API のリソース」をご覧ください。
GitHub App のレート制限を決定する
現在のレート制限の状態は、いつでも REST API を使って確認できます。 詳しくは、「REST API のリソース」を参照してください。
GitHub App による要求のレート制限は、アプリがインストールされている場所によって変わります。 GitHub.com 上の Enterprise が所有する Organization またはリポジトリにアプリがインストールされている場合、Enterprise の外部にインストールされているアプリよりもレート制限が高くなります。 詳細については、「GitHub のプラン」および「GitHub アカウントの種類」を参照してください。
レート制限 も は、GitHub App がユーザー アクセス トークンまたはインストール アクセス トークンを使用して認証するかどうかによって異なります。 ユーザー アクセス トークンを使用すると、ユーザーがアプリを承認した後で、アプリが特定のユーザーに代わって動作できるようになります。 インストール アクセス トークンを使用すると、アプリはアクションをアプリ自体に属するようにすることができます。 ユーザーとインストールのアクセス トークンについて詳しくは、「GitHub アプリでの認証について」を参照してください。
GitHub.com のインストール アクセス トークン
インストール アクセス トークンを使って認証された GitHub Apps は、インストールの最小レート制限である 1 時間あたり 5,000 要求を使います。 ユーザー数が 20 人を超える組織にアプリケーションがインストールされている場合、アプリケーションはユーザーごとに 1 時間あたり 50 件の要求を追加で受け取ります。 20以上のリポジトリを持つインストールでは、リポジトリごとにⅠ時間あたり50リクエストが追加されます。 インストールに対する最大のレート制限は、Ⅰ時間あたり12,500リクエストです。
GitHub Enterprise Cloud のインストール アクセス トークン
GitHub.com 上のエンタープライズ内の組織にインストールされた GitHub Apps には、アプリをインストールした組織ごとに 1 時間あたり 15,000 件の要求という制限があります。
GitHub.com のユーザー アクセス トークン
ユーザー アクセス トークンの要求は、認証したユーザーあたり 5,000 件/時に制限されています。
GitHub Enterprise Cloud のユーザー アクセス トークン
ユーザー アクセス トークン要求は、GitHub Enterprise Cloud Organization が所有する GitHub App からの要求の場合、1 時間あたりおよび認証済みユーザーごとに 15,000 要求の上限が適用されます。
参考資料
- REST API ドキュメントの「REST API のリソース」
- GraphQL API ドキュメントの「Rate limits and node limits for the GraphQL API」