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

> ## Agent Instructions
> These are the docs for Sevalla, a platform for deploying applications, databases, static sites, object storage and load balancers. The dashboard is at https://app.sevalla.com.
> Bold text in steps is an exact dashboard label.
> To act on a Sevalla account, prefer the Sevalla MCP server (https://mcp.sevalla.com/mcp, see https://docs.sevalla.com/ai-agents/overview.md), then the Sevalla CLI (https://docs.sevalla.com/developer-tools/cli.md), then the REST API (https://api-docs.sevalla.com, OpenAPI spec at https://api.sevalla.com/v3/openapi.json).
> Every page index is at https://docs.sevalla.com/llms.txt.

# Git providers

> Deploy applications and static sites from GitHub, GitLab, Bitbucket or any public Git URL: how Sevalla reads your repositories, triggers automatic deployments, and handles submodules and Git LFS.

Sevalla deploys applications, static sites and [preview apps](/pipelines/preview-apps) from Git repositories on GitHub, GitLab and Bitbucket. For a private repository, you connect your Git account to your Sevalla user once; Sevalla then lists your repositories, clones the one you pick at every deployment, and deploys on every push when automatic deployments are on. A public repository needs no connection.

## Supported providers

| | [GitHub](/git/github) | [GitLab](/git/gitlab) | [Bitbucket](/git/bitbucket) |
| - | - | - | - |
| Hosting supported | `github.com` | `gitlab.com` | `bitbucket.org` (Bitbucket Cloud) |
| How Sevalla connects | The Kinsta GitHub App, installed on your account or organization, plus your authorization | An OAuth application (MyKinsta) with the `api` scope | An OAuth consumer (MyKinsta) |
| Repositories you can pick | The ones the GitHub App can access, that you can access too | Every project you're a member of | Every repository you're a member of, in all your workspaces |
| How pushes reach Sevalla | Events of the GitHub App, no webhook in your repository | A project webhook Sevalla adds | A repository webhook Sevalla adds |
| Pull request comments from preview apps and static site previews | Yes | Yes, on merge requests | Yes |
| Deployments shown in the provider | Yes, as GitHub deployments of applications in pipelines and of static site previews | No | No |

Self-managed GitLab, GitHub Enterprise Server and Bitbucket Data Center can't be connected. Deploy from them as a [public repository](#deploy-a-public-repository) if the repository is public, or mirror the repository to one of the supported services.

The authorization pages say Kinsta or MyKinsta: Sevalla is a Kinsta product, and the integration runs through Kinsta's apps.

## Connect a Git account

You connect a Git account from any form that picks a repository: [creating an application](/applications/create) or a [static site](/static-sites/create), updating a service's source, or the [preview app settings](/pipelines/preview-apps#app-settings) of a pipeline.

<Steps>
  <Step title="Pick the provider">
    Under the source, choose **Private repository**, then pick **GitHub**, **GitLab** or **Bitbucket** in **Git provider**.
  </Step>

  <Step title="Connect the account">
    Click **Connect to GitHub**, **Connect to GitLab** or **Connect to Bitbucket**. The provider's authorization page opens in a new tab.
  </Step>

  <Step title="Authorize Sevalla">
    Sign in to the provider if needed and approve the access. The steps differ per provider: see [GitHub](/git/github), [GitLab](/git/gitlab) or [Bitbucket](/git/bitbucket).
  </Step>

  <Step title="Go back to Sevalla">
    Return to the Sevalla tab. It picks up the connection on its own; if it doesn't, click **Check again**.
  </Step>
</Steps>

<Frame>
  <img className="block dark:hidden" src="https://assets.sevalla.com/screenshots/light/app-create-gitlab-connect.png" alt="The Source section of the create application page with Private repository selected, GitLab picked as Git provider and a Connect to GitLab button" width="872" />

  <img className="hidden dark:block" src="https://assets.sevalla.com/screenshots/dark/app-create-gitlab-connect.png" alt="The Source section of the create application page with Private repository selected, GitLab picked as Git provider and a Connect to GitLab button" width="872" />
</Frame>

**Repository** becomes a list of your repositories. If you create a repository or change access while the page is open, click the refresh button next to it.

You can also connect from **My account**: in **Git login & repository access**, click **Enable** under **Repository access** for the provider. See [Repository access in My account](#repository-access-in-my-account).

### Rules for Git accounts

* Each Sevalla user connects one account per provider. To use another one, revoke the current one first.
* A Git account is linked to one Sevalla user at a time.
* The connection belongs to your Sevalla user, not to the company. Teammates who create services from the same repository connect their own account.
* Sevalla's fraud prevention can block a Git account. A blocked account shows `Git account blocked` in the repository picker, with `This account is temporarily blocked by fraud prevention. Add a payment method to verify, then contact support with your handle to lift the block.` To lift the block, [contact support](/support/get-help).

## How Sevalla accesses your repositories

At every deployment that builds, Sevalla clones the repository's branch with an access token, checks out the deployment's commit, and builds it.

| Provider | Whose access Sevalla uses |
| - | - |
| GitHub | The GitHub App installation. Services keep deploying even after the person who set them up leaves, as long as the app is installed on the repository. |
| GitLab and Bitbucket | The connected accounts of Sevalla users who can access the repository. Services keep deploying as long as at least one of them stays connected. |

When Sevalla loses access to a repository (the app is uninstalled, the repository is removed from it, every connected account revokes access, or the repository is deleted), deployments from it fail and pushes stop deploying. See [Troubleshoot builds and deployments](/applications/troubleshooting/builds-and-deployments).

### Automatic deployments

With automatic deployments on, Sevalla deploys a service on every push to its branch. See [Deployments](/applications/deployments) for applications and [Deployments](/static-sites/deployments) for static sites.

| Provider | How the push reaches Sevalla | What you need |
| - | - | - |
| GitHub | The GitHub App sends every push of the repositories it can access | Nothing more |
| GitLab | Sevalla adds a webhook (push, merge request and pipeline events) to the project when you turn on automatic deployments or preview apps | Maintainer or Owner role on the project, which GitLab requires to add webhooks |
| Bitbucket | Sevalla adds a webhook (push, commit status and pull request events) to the repository when you turn on automatic deployments or preview apps | Admin permission on the repository, which Bitbucket requires to add webhooks |

Bitbucket pushes don't include the list of changed files, so deploy paths can't filter them: an application skips every push and a static site deploys every push. See [Bitbucket](/git/bitbucket#limitations).

### Git submodules

Sevalla clones with `--recurse-submodules`, so submodules are checked out with the repository. Submodule URLs with SSH syntax for GitHub, GitLab or Bitbucket (`git@github.com:acme/shared.git`) are rewritten to HTTPS. A private submodule must be on the same provider as the repository and accessible with the same access: on GitHub, the GitHub App must be installed on the submodule's repository too. Submodules on other hosts must be public.

### Git LFS

Sevalla downloads the files your repository tracks with Git LFS when it clones it: Git LFS is on for every new application and static site. With it off, the build gets the LFS pointer files instead. Turn it off or on in the **Git Large File Storage (LFS)** section of the service's **Settings** tab: see [Application settings](/applications/settings#git-lfs) and [static site deployments](/static-sites/deployments#git-lfs).

## Deploy a public repository

A public repository deploys without a Git account: choose **Public repository** when you create the service and enter its **Repository URL** (such as `https://github.com/acme/storefront`) and **Branch**. Any public Git URL works, on any host.

| | Private repository | Public repository |
| - | - | - |
| Git account needed | Yes | No |
| Automatic deployments on push | Yes | No: deploy by hand or with the API, or with a [deploy hook](/applications/deployments#deploy-with-a-deploy-hook) for an application |
| Preview apps and pull request previews | Yes | No |
| Private submodules | Yes, on the same provider | No |

Review the code, security and license of a public repository you don't control before you deploy it.

## Repository access in My account

In the user menu, click **My account**. The **Git login & repository access** section has a card per provider with two lines:

| Line | Status | What it controls |
| - | - | - |
| **Login** | **Enabled** or **Disabled** | Whether you can sign in to Sevalla with this Git account. See [Sign in and two-factor authentication](/account/sign-in). |
| **Repository access** | **Enabled** or **Disabled** | Whether Sevalla can list and read your repositories with this account |

Click **Enable** to connect, or **Revoke** to disconnect.

<Frame>
  <img className="block dark:hidden" src="https://assets.sevalla.com/screenshots/light/account-git-repository-access-revoke.png" alt="The Git login & repository access section with GitHub, GitLab and Bitbucket cards, each with Login and Repository access lines and Revoke or Enable buttons" width="1214" />

  <img className="hidden dark:block" src="https://assets.sevalla.com/screenshots/dark/account-git-repository-access-revoke.png" alt="The Git login & repository access section with GitHub, GitLab and Bitbucket cards, each with Login and Repository access lines and Revoke or Enable buttons" width="1214" />
</Frame>

### Revoke repository access

<Warning>
  Revoking can stop deployments: GitLab and Bitbucket repositories that only your account gives access to are disconnected, and services that deploy from them stop deploying.
</Warning>

<Steps>
  <Step title="Open My account">
    In the user menu, click **My account**.
  </Step>

  <Step title="Revoke">
    In **Git login & repository access**, click **Revoke** on the provider's **Repository access** line, then click **Revoke** in the dialog.
  </Step>
</Steps>

**Repository access** shows **Disabled**, and Sevalla no longer lists your repositories for that provider. What else happens:

| Provider | Effect |
| - | - |
| GitHub | Services keep deploying through the GitHub App installation. To cut Sevalla's access to the repositories, uninstall the app or remove repositories from it on GitHub: see [GitHub](/git/github#disconnect-github). |
| GitLab and Bitbucket | Repositories that no other connected Sevalla user can access are disconnected. Sevalla removes their webhooks when your account could manage them. |

If **Login** is also disabled, Sevalla removes the connection completely. For GitHub, it also revokes its authorization on GitHub. For GitLab and Bitbucket, it opens the provider's page of authorized applications, where you revoke MyKinsta yourself.

## API and CLI

| Task | API | CLI |
| - | - | - |
| List the Git providers and their connect URLs | [List Git providers](https://api-docs.sevalla.com/v3/git/list-git-providers) | `sevalla git providers` |
| Read a deployed application's repository (files, tree, search) | [Get application repository](https://api-docs.sevalla.com/v3/applications/get-application-repository) | Not available |

Connecting an account is done in the browser: the API returns the provider's `connect_url` to open. For GitHub, it also returns a `settings_url` to manage the GitHub App's repository access.


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