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

# Repositories and providers

> Where repositories are connected from: the GitHub App, local folders, and the providers listed as coming soon.

**Settings › Repositories** is where repositories are connected **from**. It lists one row per provider, with its mark, its name, a status word, and the accounts under it. Connecting the repositories themselves happens on [Code](/code).

## The providers

| Provider         | State                                                                                             |
| ---------------- | ------------------------------------------------------------------------------------------------- |
| **GitHub**       | Connects today, through a GitHub App.                                                             |
| **GitLab**       | Listed, and says **Coming soon**. It cannot be connected.                                         |
| **Local folder** | Connects today, and only when the server runs in local mode. See [Local folders](/local-folders). |
| **Azure DevOps** | An enterprise provider. It is listed, and says **Coming soon**. It cannot be connected.           |

A provider that cannot be connected is still listed on purpose. Hiding it would make the page quiet about where this is going, and offering it would make the page claim something it does not do.

## GitHub

The row's action is **Connect**, or **Add account** once an account is already connected. It goes to the App's install page on GitHub. Each connected installation is listed under the row with its account name, its type, and how many repositories this workspace has linked through it.

Once an account is connected, open **Code**, press **Connect repository**, pick the account, and choose repositories.

The App reacts to three events. Installing it and changing which repositories it can see keep the account's list current. A push to a repository's default branch re-syncs the [Repository source](/guard/web-sources) that reads it. Every other event, pull requests included, is acknowledged and ignored.

### Setting the App up on a self-hosted server

The server needs four variables: `GITHUB_APP_ID`, `GITHUB_APP_PRIVATE_KEY`, `GITHUB_APP_WEBHOOK_SECRET` and `GITHUB_APP_SLUG`. Without them the server still boots, and its GitHub routes answer 503 naming what is missing. On the App's own settings page, point the webhook URL at `/api/github/webhook` and the setup URL at `/api/github/setup`. See [Installation](/installation#connect-github).

## Local folders

In local mode the row lists each connected folder with its path, and its action opens the connect dialog on Code.

## Next steps

<CardGroup cols={2}>
  <Card title="Repositories" icon="code-branch" href="/code">
    Connecting a repository and its console.
  </Card>

  <Card title="Enterprise edition" icon="building" href="/enterprise/overview">
    What the enterprise edition adds.
  </Card>
</CardGroup>
