---
title: "Dry-run a GitHub package install"
method: POST
path: "/api/v1/install/github/plan"
tags: ["Install"]
---

# Dry-run a GitHub package install

`POST /api/v1/install/github/plan`

## Request

- Base URL: `https://api-docs.busabase.com`
- URL: `https://api-docs.busabase.com/api/v1/install/github/plan`
- Auth: none declared

## Request body

- object
  - `repoUrl` string, required: GitHub repo URL: https://github.com/<owner>/<repo>[/tree/<ref>[/<subdir>]]. Only GitHub hosts are accepted.
  - `intoFolder` string: Slug of the folder to install into. Defaults to the package manifest's name.
  - `rename` boolean: Resolve slug collisions by suffixing (-2, -3, …) instead of refusing. Never overwrites anything.
  - `autoMerge` boolean

## Response `200`

What installing this package would create: the node outline, per-base record counts, slug collisions, warnings, and whether autoMerge is required. Creates nothing.

- object
  - `package` object, required
    - `name` string, required
    - `displayName` union: i18n string
      - string
      - object
    - `description` union: i18n string
      - string
      - object
    - `version` string
    - `author` string
    - `license` string
    - `homepage` string
    - `tags` string[]
  - `source` object, required
    - `owner` string, required
    - `repo` string, required
    - `ref` string
    - `subdir` string
  - `targetFolderSlug` string, required
  - `nodes` object[]
    - `path` string, required
    - `slug` string, required
    - `name` string, required
    - `type` 'folder' | 'doc' | 'base' | 'skill' | 'airapp' | 'drive' | 'file', required
    - `depth` integer, required
    - `fieldCount` integer
    - `recordCount` integer
    - `fileCount` integer
  - `counts` object, required
    - `folders` integer, required
    - `docs` integer, required
    - `bases` integer, required
    - `records` integer, required
    - `skills` integer, required
    - `airapps` integer, required
    - `drives` integer, required
    - `files` integer, required
  - `collisions` object[]
    - `kind` 'node' | 'base', required
    - `slug` string, required
    - `path` string, required
    - `renamedTo` string
  - `warnings` string[]
  - `requiresAutoMerge` boolean, required
  - `applicable` boolean, required

---

[API](https://skmtc.dev/busabase/apis/busabase-api.md) · [All operations](https://skmtc.dev/busabase/apis/busabase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/busabase/apis/busabase-api/revisions/bc6a7d5ff4c1?raw)
