# gh_ex v0.3.3 - 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)
  - [Resource modules](resources.md)
  - [Authentication](authentication.md)
  - [Pagination](pagination.md)
  - [Notifications](notifications.md)
  - [Webhooks](webhooks.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.Actions](GhEx.Actions.md): Convenience functions for the GitHub Actions REST API (workflows and runs).
  - [GhEx.Checks](GhEx.Checks.md): Convenience functions for the GitHub Checks REST API.
  - [GhEx.Contents](GhEx.Contents.md): Convenience functions for the GitHub repository Contents REST API (reading and
writing files).
  - [GhEx.Gists](GhEx.Gists.md): Convenience functions for the GitHub Gists REST API.
  - [GhEx.Issues](GhEx.Issues.md): Convenience functions for the GitHub Issues REST API.
  - [GhEx.Notifications](GhEx.Notifications.md): Convenience functions for the GitHub Notifications REST API.
  - [GhEx.Organizations](GhEx.Organizations.md): Convenience functions for the GitHub Organizations REST API.
  - [GhEx.PullRequests](GhEx.PullRequests.md): Convenience functions for the GitHub Pull Requests REST API.
  - [GhEx.Releases](GhEx.Releases.md): Convenience functions for the GitHub Releases REST API.
  - [GhEx.Repositories](GhEx.Repositories.md): Convenience functions for the GitHub Repositories REST API.
  - [GhEx.Search](GhEx.Search.md): Convenience functions for the GitHub Search REST API.
  - [GhEx.Statuses](GhEx.Statuses.md): Convenience functions for the GitHub commit statuses REST API.
  - [GhEx.Teams](GhEx.Teams.md): Convenience functions for the GitHub Teams REST API.
  - [GhEx.Users](GhEx.Users.md): Convenience functions for the GitHub Users REST API.
  - [GhEx.Webhooks](GhEx.Webhooks.md): Helpers for receiving GitHub webhooks: verify the delivery signature and decode
the payload.

- 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.
  - [GhEx.TokenCache.Value](GhEx.TokenCache.Value.md): An opaque, redacting cached installation access token and its expiry.

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

