> ## Documentation Index
> Fetch the complete documentation index at: https://docs.strata.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

Configure a GitHub repository as the storage provider for your Maverics deployment. The Console publishes signed config bundles to your GitHub repository, and Orchestrator instances poll the repository for updates.

## Prerequisites

* **A GitHub account** -- with permissions to create repositories and generate personal access tokens
* **A Maverics Console account** -- with access to create or edit deployments

## GitHub Setup

<Steps>
  <Step title="Create a Repository">
    Create a new GitHub repository (or use an existing one) for Maverics configuration storage. This repository will hold the signed config bundles published by the Console.
  </Step>

  <Step title="Generate a Fine-Grained Personal Access Token">
    Generate a fine-grained personal access token for the Console to write config bundles to the repository.

    1. In GitHub, click your profile photo, then click **Settings**
    2. In the left sidebar, click **Developer settings**
    3. Under Personal access tokens, click **Fine-grained tokens**
    4. Click **Generate new token**
    5. Enter a **Token name** (e.g., "Maverics Console")
    6. Select the **Resource owner** (your user or organization)
    7. Set an **Expiration** date
    8. Under Repository access, select **Only select repositories** and choose your Maverics repository
    9. Under Permissions, expand **Repository permissions** and set **Contents** to **Read and write**
    10. Click **Generate token** and copy the value -- paste this into the Console's **Token** field

    For full details, see [Creating a fine-grained personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) in the GitHub documentation.
  </Step>
</Steps>

## Storage Configuration

Configure these fields in the Console when creating or editing a deployment with the **GitHub** provider.

| Field                   | Required | Description                                                                  |
| ----------------------- | -------- | ---------------------------------------------------------------------------- |
| Owner                   | Yes      | Your GitHub organization name                                                |
| Repository              | Yes      | The GitHub repository name                                                   |
| Token                   | Yes      | A fine-grained personal access token with Contents read and write permission |
| Configuration File Path | No       | The path within the repository where the bundle is stored                    |

<Info>
  The Orchestrator uses the corresponding [config source](/reference/orchestrator/configuration/config-sources) type to retrieve bundles from the deployment provider. If the Console deploys to GitHub, the Orchestrator uses the [GitHub config source](/reference/orchestrator/configuration/config-sources/github) to poll for updates.
</Info>

## Related Pages

<CardGroup cols={2}>
  <Card title="Publishing Deployment Configs Overview" icon="upload" href="/reference/console/config-publishing">
    Bundle format, signing, deployment lifecycle, and revision history
  </Card>

  <Card title="GitHub Config Source" icon="code-branch" href="/reference/orchestrator/configuration/config-sources/github">
    Orchestrator-side GitHub configuration source reference
  </Card>

  <Card title="Deploy to Production" icon="rocket" href="/guides/operations/deploy">
    Production deployment guide for the Orchestrator
  </Card>
</CardGroup>
