GitHub Integration
Repo access for App Machina and project analysis via the Layers GitHub App.
Two layers of GitHub integration:
- Sign-in OAuth — personal identity, used at sign-up / sign-in.
- Layers GitHub App — repo access used by App Machina (SDK orchestrator) and project analysis.
Installing the GitHub App
- From Layers, click Install GitHub app (from project setup or from your user settings).
- GitHub redirects you to the App install page.
- Pick "All repositories" or "Selected repositories" — this is enforced by GitHub at install time.
- GitHub redirects back to Layers; the installation is linked to your user, and can be shared with Layers Orgs you belong to.
What the App can do
Permissions are whatever the GitHub App manifest requests — check the GitHub App install dialog for the current exact set. In practice the App uses read access on repository contents and metadata to analyze your code (for App Machina SDK instrumentation and related features). Write operations (e.g., opening a PR) are gated by the feature using the App.
Webhooks Layers consumes
The Layers GitHub App subscribes to:
installation.deleted— tears down the installation and cached repos.installation.suspend/installation.unsuspend— updates status.installation_repositories.added/removed— refreshes the cached repo list.
Signatures are verified with x-hub-signature-256 against the
configured webhook secret.
Multiple orgs, one installation
A GitHub installation is owned by the user who installed it.
Permission to use that installation from a given Layers Org is granted
via github_installation_access — so one install can be shared with
multiple Layers Orgs without re-installing.
Private repos
Fully supported. Layers only sees what you granted during install.
Partner API
Partners can list repos visible to the installation backing a project
via GET /v1/projects/:projectId/github/repos.
Uninstalling
From GitHub → Settings → Applications → Layers → Uninstall, or
from the Layers UI. On uninstall, GitHub fires installation.deleted
and Layers drops the cached repos for that installation.