Documentation

How GitHub access works

Sign-in is identity only. The CapWrapp GitHub App is how repositories are read and how Actions are started.

Two different GitHub relationships exist. Mixing them up is the usual “CapWrapp can’t see my repo” problem.

1. Sign-in (identity)

Continue with GitHub (or Google) creates your CapWrapp user. If you pick GitHub, that OAuth login is identity only. It is not enough to list private repos or start workflows.

2. GitHub App (repository access)

Add app installs a GitHub App named CapWrapp on the accounts you choose. You pick All repositories or Only select repositories. You can change that later under GitHub → Settings → Applications → Installed GitHub Apps.

After install, GitHub sends you back to CapWrapp’s connect screen. CapWrapp then uses a short-lived installation token (created on the server) to talk to GitHub. The private key never sits in your browser.

What CapWrapp is allowed to do

On repos you granted:

PermissionWhy
Read metadataKnow the repo exists
Read & write contentsList commits, detect Capacitor, add wrap / pipeline files
Read & write pull requestsOpen dependency and pipeline PRs
Read & write ActionsStart (workflow_dispatch) the native / preview jobs
Read & write Workflows (optional)Add the Capacitor init workflow that generates ios/ and android/ in CI

If Workflows permission is missing, CapWrapp still commits the wrap files — you (or Lovable) run npx cap add ios / android yourselves.

What CapWrapp writes

CapWrapp commits Add Capacitor to the default branch. Other changes usually land as a pull request so you can review the diff. Branches you may see:

  • capwrapp/capacitor-deps — package upgrades

The store pipeline is committed on the default branch, from Settings or from Upload for testing. Dependency upgrades always use a PR.

What GitHub tells CapWrapp

When the GitHub App webhook is active, GitHub notifies CapWrapp about:

  • App installed / repos added or removed
  • Pushes (new commits on the default branch)
  • Workflow runs (success / failed / cancelled)
  • Pull requests CapWrapp opened

The dashboard can still poll GitHub if you have the page open. Webhooks make status show up without sitting on the page.

GitHub Actions minutes

iOS jobs use GitHub-hosted macOS runners. Those minutes are billed by GitHub on your account / org, not by CapWrapp. Android uses Linux runners (cheaper). CapWrapp does not sell Mac hardware.

Private GitHub Free accounts have a monthly Actions minutes cap. If a job is queued forever, check GitHub Billing → Actions.