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

# Connect through the GitHub App

> Connect a workspace to its GitHub repository through the Paradime GitHub App: HTTPS clones with no deploy key, and pushes made as each person.

A workspace can reach its GitHub repository through the [Paradime GitHub App](https://docs.paradime.io/integrations/github/github-app.md) instead of an SSH deploy key. One install on GitHub replaces the key:

* Paradime clones the repository over HTTPS with a short-lived token from the app installation. There is no deploy key to add or rotate.
* The token reaches only the workspace's repository.
* In the Code IDE, each person pushes as themselves after they link their GitHub account.

## What changes for the workspace

When a workspace connects through the GitHub App, every part of Paradime uses HTTPS:

| Where | How it reaches the repository |
| - | - |
| **Code IDE** | Each person's clone uses HTTPS. A person who linked their GitHub account fetches and pushes with their own GitHub token, so GitHub shows them as the pusher. A person who did not link gets read-only access. |
| **Bolt** | Each run fetches a token at run start and clones over HTTPS. |
| **DinoAI agents** | The agent clones and works on the repository over HTTPS. |
| **dbt™ packages** | `dbt deps` in Bolt and in agents reaches `git@github.com:` packages over HTTPS with the run's token. In the Code IDE, GitHub SSH URLs in your package list resolve over HTTPS. |

Each workspace keeps its deploy key on file. You can switch the workspace back to the deploy key at any time, and it clones over SSH again.

## Before you start

* The Paradime GitHub App must be installed on the GitHub organization or account that owns the repository. If you are not an organization owner, Paradime asks an owner to approve the install for you. See [Install the app](#install-the-app).
* The installation must have access to the repository. If you install the app for selected repositories only, add the dbt™ repository to that list.
* You need permission to update the workspace's Git repository in Paradime.

## Connect a new workspace

![The Git Repository page with GitHub chosen as the provider, and the Choose how Paradime connects step showing GitHub App, marked Recommended, and Deploy key (SSH)](https://mintcdn.com/paradime-docs/8Ap_apA6iXxCRLlY/images/git-repository-github-app-connection-method.jpg?fit=max\&auto=format\&n=8Ap_apA6iXxCRLlY\&q=85\&s=ebda32645c0fe07c682cba6c2cec7081)

1. Go to **Settings → Git Repository**.
2. In **Choose your provider**, select **GitHub**.
3. In **Choose how Paradime connects**, select **GitHub App** and click **Continue**.
4. If the app is not installed yet, click **Connect GitHub App** and complete the install on GitHub. See [Install the app](#install-the-app).
5. In **GitHub installation**, select the installation that has access to your repository.
6. In **Repository**, search for and select the repository. The list shows only the repositories that the installation can reach.
7. Click **Connect repository**.

Paradime clones the repository over HTTPS. The **Repository** card then shows **Connected with: GitHub App** and the installation's account name.

> [!TIP]
>
> If a repository is missing from the list, click **Add repositories on GitHub** and give the installation access to it.

An installation marked **via your GitHub account** is one that your GitHub account can see but your Paradime company does not hold yet. When you connect through it, Paradime links it to your company.

## Install the app

If no installation is available, the page shows **Connect through the Paradime GitHub App**. Click **Connect GitHub App**. GitHub opens in a new tab.

* **If you are a GitHub organization owner**, choose the repositories and install the app. Return to Paradime, then pick the installation and the repository.
* **If you are not an owner**, GitHub sends the install request to your organization owners by email. Paradime shows **Waiting for a GitHub organization owner**. The page connects itself when an owner approves the install. To check again, click **Check again**.

While you wait, you can send your GitHub admin a message. Paradime writes the message for you under **Message to send your GitHub admin**. Click **Copy message** and send it to the person who owns your GitHub organization. The app asks for read and write access to the repositories you select, and nothing else.

## Switch an existing workspace to the GitHub App

A workspace that already uses a deploy key can switch without changing its repository. If an installation already covers the repository, the **Git Repository** page shows a **Switch to the GitHub App** banner that names the GitHub account that has the app installed.

1. Go to **Settings → Git Repository**.
2. In the banner, click **Switch to the GitHub App**.

The repository stays the same. Only the way Paradime reaches it changes.

To go back, click **Switch back to the deploy key** in the banner. The deploy key is still on file, so the workspace clones over SSH again at once.

## Push from the Code IDE as yourself

To push from the Code IDE on a workspace that uses the GitHub App, link your GitHub account to Paradime. See [Connect GitHub user level OAuth](https://docs.paradime.io/integrations/github/github-app.md#connect-github-user-level-oauth).

If you push before you link your account, GitHub refuses the push. The terminal shows a Paradime notice with a link before GitHub's error:

```
Paradime: Link your GitHub account to push from the editor, then run git push again: https://app.paradime.io/oauth/github/link?workspaceUid=…
remote: Write access to repository not granted.
```

Open the link. Paradime starts the GitHub sign-in in the same tab. After GitHub sends you back, the page confirms who git now runs as. Run `git push` again in the terminal.

## Check the connection

On the **Repository** card, click **Test connection**. Paradime checks that it can reach the repository through the GitHub App.

The card also shows when the connection needs attention:

| What you see | What it means | What to do |
| - | - | - |
| **Suspended on GitHub** | An owner suspended the app installation on GitHub. | Ask an owner to unsuspend the installation. |
| **The repository left this installation** | The installation can no longer reach the repository. | Add the repository back to the installation on GitHub, or pick another repository. |
| **This workspace is disconnected** | The installation the workspace used is gone. | Pick an installation and a repository to connect again. |
| **No installation left to use** | Your company holds no installation. | Install the Paradime GitHub App again. |

## Manage installations

A company can hold more than one GitHub App installation, for example one for each GitHub organization. Each workspace pins its repository to one installation. You manage installations on the GitHub integration page. See [Manage app installations](https://docs.paradime.io/integrations/github/github-app.md#manage-app-installations).

When you unlink an installation, Paradime stops using it. Each workspace connected through it falls back to its deploy key if it still has one. A workspace without a deploy key is marked disconnected.

## Change the repository

To connect the workspace to another repository, click **Change repository** on the **Repository** card. Paradime disconnects the workspace, and you choose a provider and a method again. Your GitHub App installations stay connected, so you can pick another repository at once. See [Update connected git repository](https://docs.paradime.io/products/settings/git-repositories/update-connected-git-repository.md).

## Connect with the API

The [Workspace Management API](https://docs.paradime.io/developers/graphql-api/api-reference/workspace-management-api#git-repository-connection) has `gitRepository` to read a workspace's connection and `setGitRepository` to connect it through the GitHub App, a GitLab connection, or the deploy key. The API key needs the **Git repository admin** capability.


## Related topics

- [Importing a repository](https://docs.paradime.io/products/settings/git-repositories/importing-a-repository/index.md)
- [GitHub](https://docs.paradime.io/integrations/github/index.md)
- [GitHub App](https://docs.paradime.io/integrations/github/github-app.md)
- [Connect a GitHub repository](https://docs.paradime.io/integrations/github/connect-a-repository.md)
- [Git Repositories](https://docs.paradime.io/products/settings/git-repositories/index.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.