Layers

GitHub Integration

Repo access for App Machina and project analysis via the Layers GitHub App.

View as Markdown

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

  1. From Layers, click Install GitHub app (from project setup or from your user settings).
  2. GitHub redirects you to the App install page.
  3. Pick "All repositories" or "Selected repositories" — this is enforced by GitHub at install time.
  4. 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.

On this page