Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-09-25. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

使用 Explorer

GraphQL Explorer 是浏览器中的集成开发环境,包含文档、语法重点和验证错误,可用于查询实际的 GitHub 数据。

About the GraphQL Explorer

GraphiQL, also referred to in this documentation as the GraphQL Explorer, is a "graphical interactive in-browser GraphQL IDE."

Query autocompletion

You can use query autocompletion to help you build queries. In the main pane, within the curly brackets of your query, use control+space or shift+space to display the autocomplete menu.

Accessing the sidebar docs

All types in a GraphQL schema include a description field compiled into documentation. The collapsible Docs pane on the right side of the Explorer page allows you to browse documentation about the type system. The docs are automatically updated and will drop fields that are deprecated.

Note

The Docs sidebar contains the same content that is automatically generated from the schema under GitHub GraphQL API documentation, though it is formatted differently in places.

Using the variable pane

Some example calls include variables written like this:

query($number_of_repos:Int!){
  viewer {
    name
     repositories(last: $number_of_repos) {
       nodes {
         name
       }
     }
   }
}
variables {
   "number_of_repos": 3
}

This is the correct format to submit the call using a POST request in a curl command (as long as you escape newlines).

If you want to run the call in the Explorer, enter the query segment in the main pane and the variables in the Query Variables pane below it. Omit the word variables from the Explorer:

{
   "number_of_repos": 3
}

Using the Altair GraphQL Client IDE

There are many open source GraphQL client IDEs. For example, you can use Altair to access GitHub's GraphQL API. To access the GraphQL API with Altair, download and install it from altair-graphql/altair. Then, follow the configuration steps below.

Configuring Altair

  1. Get an access token.
  2. Launch Altair.
  3. In the left sidebar, below the Altair logo, click Set Headers. A new window will open.
  4. In the "Header key" field, enter Authorization.
  5. In the "Header value" field, enter Bearer TOKEN, replacing TOKEN with your token from the first step.
  6. Click Save in the bottom right corner of the window to save your authorization header.
  7. In the "GraphQL Endpoint" field, enter your GraphQL URL, such as http(s)://HOSTNAME/api/graphql.
  8. To load the GitHub GraphQL schema, download the public schema.
  9. In Altair, click on Docs on the top right, then the three dots and Load Schema...
  10. Select the file public schema that you downloaded in an earlier step.

Note

For more information about why POST is the method, see Forming calls with GraphQL.

You can test your access by querying yourself:

query {
  viewer {
    login
  }
}

If everything worked correctly, this will display your login. You're all set to start making queries.

Requesting support

For questions, bug reports, and discussions about GitHub Apps, OAuth apps, and API development, explore the API and Webhooks category in GitHub's Community Discussions. The discussions are moderated and maintained by GitHub staff, and answered by the GitHub community.

Consider reaching out to GitHub Support directly using the contact form for:

  • guaranteed response from GitHub Enterprise Server staff
  • support requests involving sensitive data or private concerns
  • feature requests
  • feedback about GitHub Enterprise Server products

Troubleshooting errors

Because GraphQL is introspective, the Explorer supports:

  • Intelligent typeaheads aware of the current schema
  • Validation error previews as you type

If you enter a query that is not well-formed or does not pass schema validation, a popup warns you of an error. If you run the query, the error returns in the response pane.

A GraphQL response contains several keys: a data hash and an errors array.

{
  "data": null,
  "errors": [
    {
      "message": "Objects must have selections (field 'nodes' returns Repository but has no selections)",
      "locations": [
        {
          "line": 5,
          "column": 8
        }
      ]
    }
  ]
}

It's possible you might run into an unexpected error that is not related to the schema. If this happens, the message will include a reference code you can use when reporting the issue:

{
  "data": null,
  "errors": [
    {
      "message": "Something went wrong while executing your query. This is most likely a GitHub bug. Please include \"7571:3FF6:552G94B:69F45B7:5913BBEQ\" when reporting this issue."
    }
  ]
}

Note

GitHub recommends checking for errors before using data in a production environment. In GraphQL, failure is not total: portions of GraphQL queries may succeed while others fail.