# gh_ex v0.1.0 - Table of Contents

> A Req-based Elixir client for the GitHub REST and GraphQL APIs.

## Pages

- [gh_ex](readme.md)
- [Changelog](changelog.md)
- [gh_ex](spec.md)

- Guides
  - [Getting started](getting-started.md)
  - [Authentication](authentication.md)
  - [Pagination](pagination.md)
  - [Error handling](error-handling.md)
  - [GitHub Enterprise Server](github-enterprise-server.md)
  - [Testing](testing.md)

## Modules

- [GhEx.Request](GhEx.Request.md): Builds the `Req` request shared by every API call.

- Core
  - [GhEx](GhEx.md): A Req-based client for the GitHub REST and GraphQL APIs.
  - [GhEx.Client](GhEx.Client.md): The client struct: credentials, endpoints, and per-request `Req` options.
  - [GhEx.GraphQL](GhEx.GraphQL.md): Generic GraphQL access. This is the whole GraphQL API: any query or mutation,
including the corners REST cannot reach, such as Projects v2 and Discussions.
  - [GhEx.REST](GhEx.REST.md): Generic REST access. Any GitHub REST path is reachable through `get/3`,
`post/3`, `patch/3`, `put/3`, and `delete/3`.

- Resources
  - [GhEx.Issues](GhEx.Issues.md): Convenience functions for the GitHub Issues REST API.
  - [GhEx.PullRequests](GhEx.PullRequests.md): Convenience functions for the GitHub Pull Requests REST API.

- Authentication
  - [GhEx.App](GhEx.App.md): GitHub App authentication.
  - [GhEx.Auth](GhEx.Auth.md): Credential handling.
  - [GhEx.JWT](GhEx.JWT.md): Mints the short-lived JWT a GitHub App presents to authenticate as itself.
  - [GhEx.TokenCache](GhEx.TokenCache.md): Behaviour for caching minted installation access tokens.
  - [GhEx.TokenCache.ETS](GhEx.TokenCache.ETS.md): Default `GhEx.TokenCache`: an ETS table owned by a GenServer.

- Pagination &amp; metadata
  - [GhEx.Error](GhEx.Error.md): A normalized API error.
  - [GhEx.GraphQL.Meta](GhEx.GraphQL.Meta.md): Metadata accompanying a successful GraphQL response.
  - [GhEx.Pagination](GhEx.Pagination.md): REST pagination via the `Link` header.
  - [GhEx.REST.Meta](GhEx.REST.Meta.md): Metadata accompanying a successful REST response.
  - [GhEx.RateLimit](GhEx.RateLimit.md): Rate-limit headers and an opt-in retry for GitHub's rate limits.

