Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

GraphQL API のレート制限とノード制限

GitHubのGraphQL APIは、GitHubのサービスに対する過剰な呼び出し、あるいは悪用の呼び出しに対する保護としてかけられている制限があります。

ノードの制限

スキーマ検証に合格するには、すべての GraphQL API 呼び出しが次の標準を満たしている必要があります。

  • クライアントでは、すべての接続first または last 引数を指定する必要があります。
  • firstlast の値は 1 から 100 である必要があります。
  • 個々の呼び出しでは、合計 500,000 個を超えるノードを要求することはできません。

呼び出し中のノードの計算

以下の2つの例は、呼び出し中の合計ノード数を計算する方法を示しています。

  1. 単純なクエリ:

    query {
      viewer {
        repositories(first: 50) {
          edges {
            repository:node {
              name
    
              issues(first: 10) {
                totalCount
                edges {
                  node {
                    title
                    bodyHTML
                  }
                }
              }
            }
          }
        }
      }
    }

    計算:

    50         = 50 repositories
     +
    50 x 10  = 500 repository issues
    
                = 550 total nodes
  2. 複雑なクエリ:

    query {
      viewer {
        repositories(first: 50) {
          edges {
            repository:node {
              name
    
              pullRequests(first: 20) {
                edges {
                  pullRequest:node {
                    title
    
                    comments(first: 10) {
                      edges {
                        comment:node {
                          bodyHTML
                        }
                      }
                    }
                  }
                }
              }
    
              issues(first: 20) {
                totalCount
                edges {
                  issue:node {
                    title
                    bodyHTML
    
                    comments(first: 10) {
                      edges {
                        comment:node {
                          bodyHTML
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
    
        followers(first: 10) {
          edges {
            follower:node {
              login
            }
          }
        }
      }
    }

    計算:

    50              = 50 repositories
     +
    50 x 20       = 1,000 pullRequests
     +
    50 x 20 x 10 = 10,000 pullRequest comments
     +
    50 x 20       = 1,000 issues
     +
    50 x 20 x 10 = 10,000 issue comments
     +
    10              = 10 followers
    
                     = 22,060 total nodes

プライマリ レート制限

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

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

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