> ## Documentation Index
> Fetch the complete documentation index at: https://docs.outerlayer.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Report the GitHub App access builds need on each of the factory's repositories

> Lists each repository connected to the caller's factory. `missingPermissions` names each permission builds need that the GitHub App installation has not accepted, compared by level, so `read` does not satisfy `write`. Builds need contents, pull requests and issues write, and actions, checks, commit statuses and metadata read. `installationSettingsUrl` is where the installation's owner reviews and accepts them. `requestedByApp` on each says whether the App itself requests the permission: when it does not, the App's settings must add it first. `requiresPullRequest` is `true` when a ruleset on the default branch has a `pull_request` rule or classic branch protection requires reviews, `false` when neither does, and `null` when GitHub would not say. `inInstallation` is `false`, with `defaultBranch` and `requiresPullRequest` null, when the installation does not include the repository. The gateway stores nothing. Refusals: `git_connection_missing` (409, the factory has no GitHub App installation), `repository_tokens_unavailable` (503, this gateway has no GitHub App) and `github_unavailable` (503, GitHub was rate limiting or failing; retry).



## OpenAPI

````yaml /openapi.yaml get /v1/repositories/access
openapi: 3.0.3
info:
  contact:
    email: hello@outerlayer.ai
    url: https://www.outerlayer.ai
  description: >-
    The OuterLayer Gateway API lets you ingest coding-agent sessions and record
    evidence of work programmatically.


    Most teams reach it through the `outerlayer` CLI, which calls it for them.

    Call it directly to build your own integration or to automate what the
    dashboard does.


    Versioning: every endpoint is prefixed with `/v1/`. Breaking changes ship
    under a new version prefix (`/v2/`, etc.) with a 90-day-minimum deprecation
    window; anything additive lands on the current prefix.


    Vocabulary: the dashboard calls this API's `app` a **factory** — the unit
    that owns a set of repositories, the agent sessions worked on them, and the
    evidence they produce. They are the same entity. The API keeps `app` in its
    paths, headers, and field names because those are a published contract; only
    the product surface was renamed.
  title: OuterLayer Gateway API
  version: '1.0'
servers:
  - description: Production (OuterLayer Cloud)
    url: https://api.outerlayer.ai
  - description: Local dev server (self-hosted gateway)
    url: http://localhost:9418
security:
  - AppId: []
    BearerAuth: []
tags:
  - description: >-
      What a CLI login token can read about its owner without naming a factory,
      such as the factories they can use.
    name: Account
  - description: >-
      Coding-agent session ingest (outerlayer sync) and content-addressed
      session images.
    name: Agents
  - description: >-
      Evidence artifacts (screenshots, recordings, reports, logs) emitted as
      proof of a change and anchored to pull requests.
    name: Artifacts
  - description: >-
      Pass/fail outcomes of checks run in your own CI or compute, anchored to
      pull requests with the run URL as proof.
    name: Emitted Results
  - description: >-
      The acceptance criteria of a work item, recorded as one list. The Criteria
      tab, its count and the item status read that list.
    name: Criteria
  - description: >-
      What any agent found wrong about a change under review or about a rule it
      ran on, recorded on a work item.
    name: Findings
  - description: >-
      Add or remove a source's statement that it is working on an issue or pull
      request, and read what is currently live.
    name: Work Items
  - description: >-
      What the factory's GitHub App installation lets builds do on each
      connected repository, and whether each default branch requires a pull
      request.
    name: Repositories
  - description: >-
      A runner host's heartbeat — its CLI version, slots and last request for
      work — and the factory's list of hosts with a derived status.
    name: Hosts
  - description: Query server feature availability.
    name: Capabilities
  - description: Per-model LLM pricing data. Public, unauthenticated.
    name: Pricing
  - description: >-
      Create, list, and revoke factory API keys. Plaintext returned exactly once
      at creation.
    name: API Keys
  - description: >-
      Factory CRUD — a factory is owned by an organization and is the unit every
      other resource hangs off. Lets a headless agent provision one without the
      dashboard.
    name: Apps
  - description: >-
      Agent-coding session list and full transcript reads, with actor-privacy
      controls for machine keys.
    name: Sessions
  - description: >-
      Per-model token spend and fleet-wide agent behavior tiles, including
      two-window comparisons.
    name: Metrics
  - description: Synced-commit history of the app's `.outerlayer/` context tree.
    name: Context
  - description: >-
      Session→PR attribution: which agent sessions produced which pull requests,
      and what each attributed PR cost.
    name: PRs
  - description: Service health checks.
    name: Health
  - description: >-
      Org member and role administration, authenticated with an org-scoped
      management API key (`olk_…`) minted in the dashboard's settings.
    name: Org Management
  - description: OAuth 2.1 discovery metadata for MCP connector clients.
    name: OAuth
paths:
  /v1/repositories/access:
    get:
      tags:
        - Repositories
      summary: >-
        Report the GitHub App access builds need on each of the factory's
        repositories
      description: >-
        Lists each repository connected to the caller's factory.
        `missingPermissions` names each permission builds need that the GitHub
        App installation has not accepted, compared by level, so `read` does not
        satisfy `write`. Builds need contents, pull requests and issues write,
        and actions, checks, commit statuses and metadata read.
        `installationSettingsUrl` is where the installation's owner reviews and
        accepts them. `requestedByApp` on each says whether the App itself
        requests the permission: when it does not, the App's settings must add
        it first. `requiresPullRequest` is `true` when a ruleset on the default
        branch has a `pull_request` rule or classic branch protection requires
        reviews, `false` when neither does, and `null` when GitHub would not
        say. `inInstallation` is `false`, with `defaultBranch` and
        `requiresPullRequest` null, when the installation does not include the
        repository. The gateway stores nothing. Refusals:
        `git_connection_missing` (409, the factory has no GitHub App
        installation), `repository_tokens_unavailable` (503, this gateway has no
        GitHub App) and `github_unavailable` (503, GitHub was rate limiting or
        failing; retry).
      operationId: list-repository-access
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    items:
                      properties:
                        defaultBranch:
                          nullable: true
                          type: string
                        inInstallation:
                          type: boolean
                        installationSettingsUrl:
                          type: string
                        missingPermissions:
                          items:
                            properties:
                              granted:
                                nullable: true
                                type: string
                              permission:
                                type: string
                              requestedByApp:
                                description: >-
                                  Whether the GitHub App's own settings request
                                  this permission at the level builds need.
                                  `false` means the App's settings must add it
                                  before an installation owner can accept it;
                                  `true` means an owner must accept it; `null`
                                  means GitHub would not say.
                                nullable: true
                                type: boolean
                              required:
                                enum:
                                  - read
                                  - write
                                type: string
                            required:
                              - permission
                              - required
                              - granted
                            type: object
                          type: array
                        repository:
                          type: string
                        requiresPullRequest:
                          nullable: true
                          type: boolean
                      required:
                        - repository
                        - inInstallation
                        - missingPermissions
                        - installationSettingsUrl
                        - defaultBranch
                        - requiresPullRequest
                      type: object
                    type: array
                required:
                  - data
                type: object
          description: One entry per connected repository, sorted by name.
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Invalid request parameters (validation failed).
        '401':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Missing or invalid API key.
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: Caller lacks 'git.read' permission.
        '409':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: >-
            The factory has no GitHub App installation
            (`git_connection_missing`).
        '503':
          content:
            application/json:
              schema:
                properties:
                  error:
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                    type: object
                required:
                  - error
                type: object
          description: >-
            This gateway has no GitHub App configured
            (`repository_tokens_unavailable`), or GitHub was rate limiting or
            failing (`github_unavailable`, safe to retry).
components:
  securitySchemes:
    AppId:
      description: Factory id the request is scoped to.
      in: header
      name: X-Outerlayer-App-Id
      type: apiKey
    BearerAuth:
      description: API key (sk_outerlayer_*)
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.