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

# Source Control

> Connect and manage your source control providers in Loupp

## Overview

Source control integration allows you to connect your GitHub, GitLab, and Bitbucket accounts to Loupp for seamless deployment and repository management. Link multiple providers to access repositories across different platforms.

<Card title="Related Documentation" icon="link" href="/sites/create">
  Learn how to create sites using connected source control providers.
</Card>

## Supported Providers

### Available Platforms

<CardGroup cols={3}>
  <Card title="GitHub" icon="github">
    Connect your GitHub repositories for deployment
  </Card>

  <Card title="GitLab" icon="gitlab">
    Link GitLab projects and repositories
  </Card>

  <Card title="Bitbucket" icon="bitbucket">
    Only available for authenciation
  </Card>
</CardGroup>

## Connecting Providers

### Authentication Process

<Steps>
  <Step title="Select provider">
    Click on the provider card you want to connect
  </Step>

  <Step title="OAuth authentication">
    Redirect to provider's OAuth authorization page
  </Step>

  <Step title="Grant permissions">
    Authorize Loupp to access your repositories
  </Step>

  <Step title="Return to dashboard">
    Automatically redirected back to source control settings
  </Step>
</Steps>

### Provider Information

<AccordionGroup>
  <Accordion title="User Details">
    **Username**: Displayed username from the connected account

    **Installation Count**: Number of sites using this provider
  </Accordion>

  <Accordion title="Connection Status">
    **Active**: Green indicator for connected providers

    **Inactive**: Red indicator for unconnected providers
  </Accordion>
</AccordionGroup>

## Managing Connections

### Provider Actions

<AccordionGroup>
  <Accordion title="Link Provider">
    **Action**: Click arrow icon on inactive provider

    **Result**: Redirects to OAuth authentication flow
  </Accordion>

  <Accordion title="Refresh Connection">
    **Action**: Click refresh icon on active provider

    **Result**: Re-authenticates and updates connection
  </Accordion>

  <Accordion title="Unlink Provider">
    **Action**: Click unlink icon on active provider

    **Restriction**: Cannot unlink if provider has active sites

    **Result**: Removes provider connection
  </Accordion>
</AccordionGroup>

### Connection Requirements

<Warning>
  You must have at least one source control provider connected to deploy sites. You cannot unlink a provider that has active sites deployed.
</Warning>

## Repository Access

### Branch Management

<AccordionGroup>
  <Accordion title="Branch Retrieval">
    **GitHub**: Fetches branches via GitHub API

    **GitLab**: Retrieves branches with automatic token refresh
  </Accordion>

  <Accordion title="API Integration">
    * Automatic branch listing for deployment
    * Repository access for site creation
    * Webhook support for automatic deployments
  </Accordion>
</AccordionGroup>

### Provider-Specific Features

<AccordionGroup>
  <Accordion title="GitHub Features">
    * Repository branch access
    * OAuth token management
    * Webhook integration
  </Accordion>

  <Accordion title="GitLab Features">
    * Automatic token refresh
    * Project-based repository access
    * Enhanced error handling
  </Accordion>
</AccordionGroup>

## Security and Permissions

### OAuth Scopes

<CardGroup cols={2}>
  <Card title="Repository Access" icon="folder">
    Read access to repositories and branches
  </Card>

  <Card title="Webhook Management" icon="webhook">
    Create and manage deployment webhooks
  </Card>
</CardGroup>

### Token Management

<AccordionGroup>
  <Accordion title="Access Tokens">
    * OAuth tokens stored securely
    * Automatic token refresh for GitLab
    * Token validation and error handling
  </Accordion>

  <Accordion title="Security Features">
    * Encrypted token storage
    * Automatic token expiration handling
    * Secure API communication
  </Accordion>
</AccordionGroup>

## Integration with Deployment

### Site Creation

<Steps>
  <Step title="Select provider">
    Choose connected source control provider during site creation
  </Step>

  <Step title="Repository selection">
    Browse and select repositories from connected providers
  </Step>

  <Step title="Branch configuration">
    Select deployment branch and configure webhooks
  </Step>
</Steps>

<Card title="Site Creation Guide" icon="plus" href="/sites/create">
  Learn how to create sites using your connected source control providers.
</Card>

### Deployment Workflow

<AccordionGroup>
  <Accordion title="Automatic Deployments">
    * Webhook-triggered deployments on code pushes
    * Branch-specific deployment configurations
    * Real-time deployment status updates
  </Accordion>

  <Accordion title="Manual Deployments">
    * Manual deployment triggers
    * Branch switching capabilities
    * Deployment history tracking
  </Accordion>
</AccordionGroup>

<Card title="Deployment Management" icon="rocket" href="/sites/deployments">
  Learn how to manage deployments and view deployment history.
</Card>
