Skip to main content

Overview

Connect a GitHub repository to a Canvas app and every push to your branch triggers an automatic build and deploy. Pull requests get preview URLs for live review before merging.

Connecting a repo

curl -X POST https://api.mixpeek.com/v1/apps/$APP_ID/connect-repo \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "repo_url": "https://github.com/your-org/your-repo",
    "branch": "main"
  }'
This configures a GitHub webhook that listens for push and pull_request events on the specified branch.

Automatic deploys on push

When you push to the connected branch:
  1. GitHub sends a push webhook to Canvas
  2. Canvas clones your repo and checks out the pushed commit
  3. Runs npm ci to install dependencies
  4. Runs npm run build to produce the build output
  5. Zips the dist/ directory and deploys it
Build output is streamed in real time — see Build Logs.
Canvas auto-detects your build output directory. It looks for dist/, build/, or out/ in order.

What gets built

Canvas runs a standard Node.js build process:
git clone <repo_url> --branch <branch> --depth 1
cd <repo>
npm ci
npm run build
Your package.json must include a build script. The build output must contain an index.html.

Git metadata in versions

Every deploy from GitHub automatically records git metadata in the version record:
FieldDescription
git_commit_shaThe commit SHA that triggered the deploy
git_authorAuthor of the commit
git_branchBranch name
This metadata is visible in Version History and in Studio.

Webhook events

EventCanvas behavior
push to connected branchBuild and deploy to production
pull_request opened/updatedBuild and deploy preview
pull_request closedClean up preview environment

Disconnecting

To stop automatic deploys, remove the webhook from your GitHub repository settings or update the app’s configuration to remove the repo_url.