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

# Code Integration Requirements

> Requirements and supported Git providers for code integrations

## Overview

Coalesce Quality integrates with your Git repositories to extract information about code changes across your data platform. The integration works with multiple frameworks and tools, including:

* **dbt** (Data Build Tool)
* **Looker** (LookML)
* **SQLMesh**
* **Coalesce** (Transform)
* **Custom entities**
* **Any other data transformation or analytics code**

By connecting your Git repositories, you can:

* **Display model changes** in the UI with optional diffs for quick inspection and troubleshooting
* **Show recent Git commits** for failing models in alerts, helping you identify what changed
* **Link code changes to data assets** for easier debugging
* **Understand the impact** of code changes on data quality
* **Track lineage** from code to data warehouse
* **Provide context** for data incidents with relevant code changes

## Supported Git Providers

Coalesce Quality works with **any Git provider** that supports SSH access. We provide native support and detailed guides for the following:

### Primary Supported Providers

* **GitHub** (Cloud and Enterprise)
* **GitLab** (Cloud and self-managed)
* **Bitbucket** (Cloud and Server/Data Center)
* **Azure DevOps Repos**

### Other Providers

* **Self-hosted Git** (Gitea, Gogs, etc.)
* **Any other SSH-based Git provider**

The unified integration form works with all SSH-based Git providers. Choose your provider below for specific deploy key setup instructions:

* [GitHub Integration](/code-integrations/github) - Deploy key setup for GitHub
* [GitLab Integration](/code-integrations/gitlab) - Deploy key setup for GitLab
* [Bitbucket Integration](/code-integrations/bitbucket) - Access key setup for Bitbucket
* [Azure DevOps Integration](/code-integrations/azure-devops) - SSH key setup for Azure DevOps
* [Other Git Providers](/code-integrations/ssh-git) - Self-hosted and other SSH-based Git

## Integration Requirements

Your Git provider must meet the following requirements:

### 1. Internet Accessibility

Your Git repository must be accessible over the internet. Access can be limited to static egress IP addresses for your region. See [IP Whitelist](/security/ip) for the complete list.

### 2. SSH Access

* Git repository must be accessible via **SSH** (typically port 22)
* Only SSH URLs are supported - HTTPS URLs will not work
* SSH deploy keys are used for secure, read-only access

### 3. Authentication

* Repositories must support authentication using **deploy keys** (SSH keys)
* Following the principle of least privilege, only **read-only access** to the selected repository is required

## IP Whitelisting

If your organization uses IP whitelisting for Git provider access, you'll need to add the Coalesce Quality egress IP addresses to your allowlist. Consult your provider's documentation for specific instructions:

### GitHub

* [Adding an Allowed IP Address to GitHub](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-allowed-ip-addresses-for-your-organization)

### GitLab

* [IP Address Restrictions in GitLab](https://docs.gitlab.com/ee/user/group/access_and_permissions.html#restrict-group-access-by-ip-address)

## Setup Overview

Setting up a code integration involves two main steps:

1. **Configure the integration** using the universal Git integration form
2. **Add the deploy key to your Git provider** following provider-specific instructions

## Configuring the Integration

All Git providers use the same integration form. Navigate to **Settings > Add integration > Git** to get started.

### Integration Name

Provide a descriptive name for your integration.

**Examples:**

* `Production Analytics Repo`
* `Data Platform GitHub`
* `Bitbucket Staging`

### Repository URL (SSH)

Enter the SSH URL of your Git repository.

**Format:** `git@hostname:organization/repository.git`

**Examples:**

* GitHub: `git@github.com:myorg/analytics.git`
* GitLab: `git@gitlab.com:myorg/data-platform.git`
* Bitbucket: `git@bitbucket.org:myworkspace/dbt-project.git`

<Warning>
  Only SSH URLs are supported. HTTPS URLs will not work.
</Warning>

### Branches to Analyse

Specify which branches to analyze.

* **Default:** Leave empty to automatically use `main` or `master`
* **Custom:** Enter specific branch names (e.g., `develop`, `staging`, `production`)

### Path to Analyse

Define the directory path where your source code is located.

* **Default:** Leave empty to analyze the entire repository
* **Custom:** Enter a subdirectory path (e.g., `analytics/`, `transform/dbt/`)

<Note>
  In most cases, analyzing the entire repository (default) is recommended.
</Note>

### Commit URL Format (Optional)

For most Git providers (GitHub, GitLab, Bitbucket), the correct commit URL format is determined automatically. For custom or self-hosted instances, you may need to specify it manually.

**Available Placeholders:**

* `{owner}` - Repository owner/organization
* `{name}` - Repository name
* `{hash}` - Commit hash
* `{branch}` - Branch name
* `{web_url}` - Repository web URL
* `{provider}` - Git provider (github, gitlab, bitbucket, azuredevops)

**Format Examples:**

* **GitHub:** `https://github.com/{owner}/{name}/commit/{hash}`
* **GitLab:** `https://gitlab.com/{owner}/{name}/-/commit/{hash}`
* **Bitbucket:** `https://bitbucket.org/{owner}/{name}/commits/{hash}`
* **Custom:** `{web_url}/commit/{hash}` (works with most Git providers)

Leave this field empty unless you're using a custom Git instance that requires a specific URL format.

### Data Collection

**Store commit diff:** Enable this option (checked by default) to collect and display actual code changes in the Code & Changes screen.

### Create and Get Public Key

Click **Create** to generate the integration. After creation, navigate back to edit the integration to view the **public SSH key**.

<Warning>
  The public key is generated when you create the integration but is only visible when you edit the integration afterward. Make sure to copy it before proceeding to add it to your Git provider.
</Warning>

## Access Permissions

**Admin access** to the repository is required to configure deploy keys. However, the deploy key itself only provides **read-only access** to the repository content. This ensures:

* Your code cannot be modified
* Access is limited to the specific repository
* No organization-wide permissions are granted

## Adding Deploy Keys to Your Git Provider

After creating the integration and copying the public SSH key, you need to add it as a deploy key in your Git provider. The process varies by provider.

Choose your Git provider for detailed setup instructions:

<CardGroup cols={2}>
  <Card title="GitHub" icon="github" href="/code-integrations/github">
    Add deploy key to GitHub repositories
  </Card>

  <Card title="GitLab" icon="gitlab" href="/code-integrations/gitlab">
    Add deploy key to GitLab projects
  </Card>

  <Card title="Bitbucket" icon="bitbucket" href="/code-integrations/bitbucket">
    Add access key to Bitbucket repositories
  </Card>

  <Card title="Azure DevOps" icon="microsoft" href="/code-integrations/azure-devops">
    Add SSH key to Azure DevOps Repos
  </Card>

  <Card title="Other Providers" icon="git" href="/code-integrations/ssh-git">
    Self-hosted and other SSH-based Git
  </Card>
</CardGroup>
