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

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Disconnect a GitHub repository

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Disconnects the app from its GitHub repository. The repository itself stays on GitHub, untouched.

Base44 first copies the repository's current code into its own storage, along with the app's open [branches](/developers/references/app-management/get-started/concepts#branches), and the app carries on from that version. If the copy fails, the app stays connected and you can retry. Base44 then stops syncing and tries to remove the webhook it installed on the repository. A webhook it can't remove no longer affects the app. The response comes back only after all of that finishes.

Afterwards [Get GitHub connection](/api-reference/get-github-connection) reports `connected: false` and names the repository in `previous_repository`. Restore the connection with [Reconnect a GitHub repository](/api-reference/reconnect-a-github-repository). Connecting a different repository with [Connect a GitHub repository](/api-reference/connect-a-github-repository) replaces the previous one, which the app can then no longer reconnect to.



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json delete /api/apps/{app_id}/github/disconnect
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/github/disconnect:
    delete:
      summary: Disconnect a GitHub repository
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Disconnects the app from its GitHub repository. The repository itself
        stays on GitHub, untouched.


        Base44 first copies the repository's current code into its own storage,
        along with the app's open
        [branches](/developers/references/app-management/get-started/concepts#branches),
        and the app carries on from that version. If the copy fails, the app
        stays connected and you can retry. Base44 then stops syncing and tries
        to remove the webhook it installed on the repository. A webhook it can't
        remove no longer affects the app. The response comes back only after all
        of that finishes.


        Afterwards [Get GitHub connection](/api-reference/get-github-connection)
        reports `connected: false` and names the repository in
        `previous_repository`. Restore the connection with [Reconnect a GitHub
        repository](/api-reference/reconnect-a-github-repository). Connecting a
        different repository with [Connect a GitHub
        repository](/api-reference/connect-a-github-repository) replaces the
        previous one, which the app can then no longer reconnect to.
      operationId: disconnect_repository_api_apps__app_id__github_disconnect_delete
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app to disconnect from its GitHub repository.
            title: App Id
          description: ID of the app to disconnect from its GitHub repository.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '200':
          description: The app was disconnected from its repository.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisconnectResponse'
        '400':
          description: The app has no active GitHub connection.
        '401':
          description: Missing or invalid credentials.
        '402':
          description: The app's workspace plan doesn't include the GitHub integration.
        '403':
          description: >-
            You don't have access to this app, you're neither its owner nor the
            user who connected the repository, you used a read-only personal
            access token, or you used a workspace API key.
        '404':
          description: App not found.
        '409':
          description: >-
            The app is busy with another operation. Wait for it to finish and
            try again.
      security:
        - PersonalAccessTokenAuth:
            - full_access
components:
  schemas:
    DisconnectResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: >-
            Whether the app was disconnected. Always `true`, because a
            disconnect that fails returns an error instead.
          example: true
      type: object
      required:
        - success
      title: DisconnectResponse
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

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