Git integration

Connect GitHub, GitLab, or Bitbucket once. PreviewDrop handles webhooks, PR comments, and cleanup for you.

Supported providers

  • GitHub (cloud) — via the PreviewDrop GitHub App. Public and private repos.
  • GitLab (cloud and self-hosted) — via personal/project access token + auto-installed webhooks.
  • Bitbucket Cloud — via OAuth app + auto-installed webhooks.

GitHub Enterprise Server is on the roadmap. Email support@previewdrop.dev if you need it sooner.

Connecting GitHub

  1. Click Connect repo in the dashboard and choose GitHub.
  2. Install the PreviewDrop GitHub App on your personal account or an org you admin.
  3. Grant access to specific repos (recommended) or all repos. You can change this later in your GitHub settings.
  4. You'll be redirected back. The repos you picked show up in the repo chooser.
What the GitHub App can do
Read metadata, receive push and pull-request events, post comments on PRs, set commit status checks. It cannot push code, open PRs on your behalf, or modify repo settings.

Connecting GitLab

  1. In GitLab, create a personal access token with api scope (or a project token with developer + api).
  2. In PreviewDrop's Connect repo flow, choose GitLab and paste the token.
  3. PreviewDrop installs a webhook on each selected project — you don't have to do anything manually.

For self-hosted GitLab, also provide your GitLab base URL (e.g. https://git.company.com).

Connecting Bitbucket

  1. Click Connect repo → Bitbucket and authorise the OAuth app.
  2. Pick the workspace and repositories to expose.
  3. PreviewDrop installs webhooks automatically on the selected repos.

What triggers a deploy

Once a repo is connected, PreviewDrop deploys automatically on:

  • Push to any branch — new commit → new deployment on the same branch subdomain.
  • Pull request opened — fires a deploy and (if enabled) posts the URL as a PR comment.
  • Pull request updated — a new push on the PR source branch → new deployment.
  • Branch deleted or PR merged — the preview is stopped and scheduled for teardown.
Want to skip deploys for a specific commit? Add [skip preview] anywhere in the commit message.

PR comments

Turn on Post preview URL to PRs in Project Settings and PreviewDrop will add a comment to each PR the moment the preview is live:

PR comment
🚀 Preview ready | Branch | URL | Status | |--------|------------------------------------------|--------| | feature/checkout-v2 | https://feature-checkout-v2-abc.previews.previewdrop.dev | ready (34s build) | Built from commit a1b2c3d. Comment will update on each new push.

The comment is idempotent — each new push edits the same comment instead of spamming threads.

Commit status checks

PreviewDrop also sets a commit status (GitHub) or pipeline status (GitLab / Bitbucket) so the green checkmark in your PR list is a real signal: it means the preview built and is reachable. If the build fails, the check fails with a link to the build log.

Monorepos

For repos with multiple deployable services, create one PreviewDrop project per service and set the Root directory for each. PreviewDrop will only rebuild a service when files inside its root directory (or a shared path you configure) change.

Project Settings
Service: web Root: apps/web Trigger on: apps/web/** | packages/shared/** Service: api Root: apps/api Trigger on: apps/api/** | packages/shared/**

Disconnecting

Removing the provider integration stops all future deploys immediately. Existing previews keep running until their TTL expires — or you can stop them manually from the Deployments tab.