Skip to main content

Limites de débit et limites de Node pour l’API GraphQL

L’API GraphQL GitHub a des limitations en place pour se protéger d’appels excessifs ou abusifs aux serveurs de GitHub.

Limite du nombre de nœuds

Pour passer la validation de schéma, tous les appels d’API GraphQL doivent respecter les standards suivants :

  • Les clients doivent fournir un argument first ou last sur toute connexion.
  • Les valeurs de first et last doivent être comprises entre 1 et 100.
  • Des appels individuels ne peuvent pas demander plus de 500 000 nœuds au total.

Calcul des nœuds dans un appel

Les deux exemples suivants montrent comment calculer le nombre total de nœuds dans un appel.

  1. Requête simple :

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

    Calcul :

    50         = 50 repositories
     +
    50 x 10  = 500 repository issues
    
                = 550 total nodes
  2. Requête complexe :

    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
            }
          }
        }
      }
    }

    Calcul :

    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

Limite du taux principal

Les limites de taux sont désactivées par défaut pour GitHub Enterprise Server. Contactez l'administrateur de votre site afin de confirmer les limites de débit pour votre instance.

Si vous êtes administrateur de site, vous pouvez définir des limites de débit pour votre instance. Pour plus d’informations, consultez « Configuration des limites de débit ».

Si vous développez une application pour des utilisateurs ou des organisations en dehors de votre instance, les limites de débit standard de GitHub s'appliquent. Pour en savoir plus, consultez Limites de débit et limites de Node pour l’API GraphQL dans la documentation GitHub Free.