# Source Control & Deployments

Zuplo integrates with your Git repository for both development and deployments.
Understanding how these work together helps you choose the right setup for your
team.

## Two Capabilities, One Integration

**Source control integration** gives you push/pull access between the Zuplo
portal and your repository. Edit in the portal, commit to Git. Pull changes from
teammates. This works with GitHub, GitLab, Bitbucket, and Azure DevOps.

**Automatic deployments** trigger a deploy every time you push to your
repository. Push to `main` and your production environment updates. Push to a
feature branch and get an isolated preview environment. This is currently
GitHub-only.

## Choosing Your Setup

### GitHub (Recommended)

GitHub provides the most complete experience:

- **Source control** — Push and pull between portal and repository
- **Automatic deployments** — Every push deploys automatically
- **Branch environments** — Each branch gets its own environment
- **Deployment status** — See deploy results directly in GitHub

For most teams, the default GitHub integration handles everything. You can add
[deployment testing](./github-deployment-testing.mdx) to run your test suite
after each deploy without any custom CI/CD.

If you need approval gates, complex test pipelines, or tag-based releases, see
[Custom GitHub Actions](./custom-ci-cd-github.mdx).

**[Set up GitHub →](./source-control-setup-github.mdx)**

### GitLab, Bitbucket, Azure DevOps (Enterprise)

These providers offer source control integration on
[enterprise plans](https://zuplo.com/pricing):

- **Source control** — Push and pull between portal and repository
- **No automatic deployments** — Use CI/CD pipelines to deploy

Since these providers don't have automatic deployments, you'll use their native
CI/CD systems to deploy via the Zuplo CLI.

- **[GitLab setup](./source-control-setup-gitlab.mdx)** and
  [CI/CD pipelines](./custom-ci-cd-gitlab.mdx)
- **[Bitbucket setup](./source-control-setup-bitbucket.mdx)** and
  [CI/CD pipelines](./custom-ci-cd-bitbucket.mdx)
- **[Azure DevOps setup](./source-control-setup-azure.mdx)** and
  [CI/CD pipelines](./custom-ci-cd-azure.mdx)

### Other CI/CD Providers

If your code lives elsewhere but you want to use a specific CI/CD system:

- **[CircleCI](./custom-ci-cd-circleci.mdx)** — Flexible workflows with approval
  jobs

## How Branch-Based Deployments Work

Every Git branch maps to a Zuplo environment. Push to `main` and deploy to your
main environment. Push to `feature-auth` and get a `feature-auth` environment
automatically.

This enables powerful workflows like PR preview environments where reviewers can
test changes against a live API before merging.

Learn more: [Branch-Based Deployments](./branch-based-deployments.mdx)

## Managing Your Project

- [Rename or Move Project](./rename-or-move-project.mdx) — How to handle
  repository changes
