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

# Set CI public repositories

> Turn jobs from a linked account's public repositories on or off, and limit them to listed GitHub users.



## OpenAPI

````yaml openapi/boat-v1.yaml POST /ci/public
openapi: 3.1.0
info:
  title: Boat Public API v1
  version: 1.0.0
  description: >
    Public JSON API for creating, operating, prompting, observing, and exposing
    sandboxes from backend services, CI jobs, hosted workers, and Boat
    automation products.


    The v1 reference intentionally documents the developer integration surface
    only. Dashboard billing actions are not part of v1.
servers:
  - url: https://boat.dev/api/v1
security:
  - BoatBearerAuth: []
tags:
  - name: Boat
    description: >-
      Unified Boat account, setup, lifecycle, prompting, event history, desktop
      access, and SSH operations.
paths:
  /ci/public:
    post:
      tags:
        - Boat
      summary: Set CI public repositories
      description: >-
        Turns jobs from a linked account's public repositories on or off, and
        sets the GitHub users whose runs may use boat there. A run is allowed
        only when both its author and the user who started it (a re-run) are on
        the list. Each user is checked on GitHub. Only the person who linked the
        account, or an owner or admin of its org, can change it. Needs an API
        key with `account.admin`.
      operationId: setCiPublicRepos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CiPublicReposRequest'
      responses:
        '200':
          description: The setting, as saved (or as it would be, with dryRun).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CiPublicReposResponse'
        '400':
          description: A user is not a GitHub username or GitHub does not know it.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            The caller did not link this account and is not an owner or admin of
            its org.
        '404':
          description: No linked GitHub account matches.
components:
  schemas:
    CiPublicReposRequest:
      type: object
      required:
        - account
      properties:
        account:
          type: string
          description: The linked GitHub account (login) or installation ID.
        allow:
          type: boolean
          description: >-
            true = jobs from public repositories run. Omit to keep the current
            value.
        users:
          description: >-
            GitHub users allowed: "alice, @bob" or a list. Commas, spaces, @ and
            profile URLs are accepted. "" = anyone. Omit to keep the current
            list.
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        dryRun:
          type: boolean
          description: Only check the users on GitHub; change nothing.
        org:
          type: string
          description: The organization in scope.
    CiPublicReposResponse:
      allOf:
        - $ref: '#/components/schemas/SuccessBase'
        - type: object
          required:
            - allowPublicRepos
            - publicRepoUsers
          properties:
            type:
              type: string
              const: ci.public
            allowPublicRepos:
              type: boolean
            publicRepoUsers:
              type: array
              items:
                type: object
                properties:
                  login:
                    type: string
                    description: The login as GitHub spells it.
                  avatarUrl:
                    type:
                      - string
                      - 'null'
    SuccessBase:
      type: object
      required:
        - ok
        - type
      properties:
        ok:
          type: boolean
          examples:
            - true
        type:
          type: string
          description: Stable success envelope discriminator added by v1.
    ErrorEnvelope:
      type: object
      required:
        - ok
        - type
        - status
        - code
        - message
        - error
        - requestId
      properties:
        ok:
          type: boolean
          examples:
            - false
        type:
          type: string
          examples:
            - sandbox.error
        status:
          type: integer
          examples:
            - 409
        code:
          type: string
          examples:
            - provider_not_configured
        message:
          type: string
          examples:
            - Prompting is locked until Codex is configured on the Agents page.
        requestId:
          type: string
          examples:
            - req_01HX...
        error:
          type: object
          required:
            - code
            - message
            - status
          properties:
            code:
              type: string
            message:
              type: string
            status:
              type: integer
            details:
              type: object
              additionalProperties: true
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          examples:
            unauthorized:
              value:
                ok: false
                type: sandbox.error
                status: 401
                code: unauthorized
                message: Unauthorized
                error:
                  code: unauthorized
                  message: Unauthorized
                  status: 401
                requestId: req_01HX...
  securitySchemes:
    BoatBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: sandbox_api_key
      description: >-
        Boat bearer token in the form `boat_...`. Service API keys authenticate
        sandbox operations.

````

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