Deploying
Connect GitHub, GitLab, Bitbucket or any Git host
Connect GitHub for repo picking, auto-deploy on push and PR previews, add tokens for private GitLab, Bitbucket, Gitea or self-hosted repos, and fix webhook problems.
GitHub (recommended)
Connecting GitHub lets you pick repos and branches from a list, clone private repos, deploy on every push, and build previews from pull requests.
- Settings → GitHub → Connect GitHub (admins and owners), or the GitHub step in onboarding.
- Approve MarvX on GitHub (access to repositories, read access to organizations and profile).
- You return with "GitHub connected"; your repos, including private ones, appear in each project's Provider section.
The connection belongs to the workspace and is used by all its projects. If an organization's repos are missing, the org may restrict third-party apps: an org owner must approve MarvX in GitHub (Organization settings → Third-party access).
Pick a repo: project General → Provider: Source provider GitHub, search and pick the Repository, pick a Branch, Save, Deploy. Without a connection you can type owner/repo manually (public repos only).
Auto-deploy on push
The Autodeploy switch (on by default) installs one webhook per repo; each push to the project's branch deploys. The Auto-deploy on push row shows Connected (with the last delivery result), Off, or Not connected with a reason:
| Reason | Fix |
|---|---|
| Connect GitHub for this workspace | Settings → GitHub → Connect GitHub |
| Token revoked / reconnect | Reconnect GitHub |
| You need admin access to the repo | Reconnect with a GitHub account that's a repo admin |
| Organization restricts third-party apps | Org owner approves MarvX |
| Webhook missing or disabled, failed delivery | Retry |
| GitHub API rate limit | Wait a few minutes, Retry |
Auto-deploy and PR previews work for GitHub only. Disconnecting GitHub stops auto-deploys and private clones.
GitLab, Bitbucket, Gitea and other hosts
- Provider: choose GitLab, Bitbucket, Gitea or Other / self-hosted Git.
- Repository URL over HTTPS (e.g.
https://gitlab.com/group/project.git) and Branch (defaultmain). Save, Deploy. - After pushing, click Deploy yourself.
Private repos: Settings → Git credentials (admins):
- Host: e.g.
gitlab.com,bitbucket.org,git.company.com. - Username: optional, defaults to
oauth2(fine for GitLab). Bitbucket: your username with an app password or access token. - Access token: read access to the repo. Never shown again after saving.
Credentials match repos by host. SSH URLs (git@…) can't be cloned because MarvX has no SSH key; use HTTPS.
What MarvX clones
A shallow clone of the selected branch (latest commit only). Submodules aren't fetched: vendor them or deploy a prebuilt image.