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

# Connect GitHub & GitLab

> Connect a source-control integration so Chainloop can list and watch your repositories.

Connecting GitHub or GitLab is a **one-time, organization-level** action performed from **Integrations** — not from a per-repository "Repositories" section. Once your organization is connected, the [Create Project wizard](/get-started/projects/create-project) lists your repositories **live** from the provider's API. There's no manual repository import step to run beforehand.

## Connect a provider

<Steps>
  <Step title="Open Integrations">
    In the Chainloop web UI, go to [**Integrations**](https://app.chainloop.dev/integrations). Under the source-control integrations you'll find **GitHub** and **GitLab**.
  </Step>

  <Step title="Click Connect">
    Click **Connect** on the provider you use. You'll be redirected to the provider to authorize access and choose which repositories Chainloop can see.

    <Frame>
      <img src="https://mintcdn.com/chainloop/CoxE9lbpXk5SmleD/get-started/projects/img/connect-integrations.png?fit=max&auto=format&n=CoxE9lbpXk5SmleD&q=85&s=92a844a3ce710315540608e671fcd09b" alt="The GitLab integration page with a Connect button" width="567" height="337" data-path="get-started/projects/img/connect-integrations.png" />
    </Frame>
  </Step>

  <Step title="Authorize">
    Complete the OAuth authorization. For GitHub this installs the Chainloop GitHub App on the repositories you select; for GitLab this authorizes the Chainloop OAuth application.
  </Step>
</Steps>

<Tabs>
  <Tab title="GitHub">
    <Frame>
      <img src="https://mintcdn.com/chainloop/CoxE9lbpXk5SmleD/get-started/projects/img/connect-github.png?fit=max&auto=format&n=CoxE9lbpXk5SmleD&q=85&s=afd547b913fbe7fa17892d00b827fd36" alt="GitHub App installation and authorization screen" width="553" height="781" data-path="get-started/projects/img/connect-github.png" />
    </Frame>

    GitHub prompts you to install the Chainloop GitHub App on your account or organization, then choose whether to grant access to all repositories or select individual ones. You can change this selection later from GitHub without reconnecting from Chainloop.
  </Tab>

  <Tab title="GitLab">
    <Frame>
      <img src="https://mintcdn.com/chainloop/CoxE9lbpXk5SmleD/get-started/projects/img/connect-gitlab.png?fit=max&auto=format&n=CoxE9lbpXk5SmleD&q=85&s=9e9ed59621db8ddd923e6d18a97793c6" alt="GitLab OAuth application authorization screen" width="696" height="363" data-path="get-started/projects/img/connect-gitlab.png" />
    </Frame>

    GitLab prompts you to authorize the Chainloop OAuth application, granting it read access to the groups and projects you approve.
  </Tab>
</Tabs>

<Note>
  Chainloop stores only repository metadata (ID and name), not your repository code.
</Note>

## Adjusting repository access

To add or remove the repositories Chainloop can see, use the provider's app or authorization settings rather than reconnecting from Chainloop:

* **GitHub**: open the Chainloop GitHub App configuration for your account or organization and update the repository selection.
* **GitLab**: open the authorized application settings for the Chainloop OAuth application and update the granted scope.

This is also where the Create Project wizard's **Manage access** link takes you.

## Reconnecting

If a connection breaks — for example, the GitHub App is uninstalled or the GitLab authorization is revoked — managed workflows and other repository features are paused for the affected repositories until you reconnect. To restore access, go to **Integrations**, click **Connect** on the affected provider, and re-grant repository access.

***

Next: [Create a project](/get-started/projects/create-project). See also the [GitHub permissions reference](/reference/github-permissions) for the exact scopes the Chainloop GitHub App requests.
