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

# GitHub endpoints

> List repos, branches, detect uproject.

These endpoints proxy GitHub through BuildPixel's backend, using the org's GitHub App installation. The dashboard uses them during project creation; you can call them directly if you're scripting.

## `GET /github/repos/:installationId`

List repositories the App can see.

```bash theme={null}
curl https://api.buildpixel.io/github/repos/$INSTALLATION_ID \
  -H "Authorization: Bearer $TOKEN"
```

Response:

```json theme={null}
{
  "items": [
    {
      "id": 12345678,
      "fullName": "mystudio/mygame",
      "private": true,
      "defaultBranch": "main",
      "uprojectDetected": true
    }
  ],
  "nextCursor": null
}
```

## `GET /github/branches/:installationId`

List branches for a repo.

Query params:

* `repoFullName=mystudio/mygame` (required)
* `q=<text>` — branch name search

Response:

```json theme={null}
{
  "items": [
    {
      "name": "main",
      "commit": { "sha": "...", "message": "...", "author": "..." },
      "isDefault": true
    }
  ]
}
```

## `GET /github/uproject/:installationId`

Detect the `.uproject` file and parse its key fields.

Query params:

* `repoFullName=mystudio/mygame` (required)
* `branch=main` (optional, default branch if omitted)

Response:

```json theme={null}
{
  "path": "MyGame.uproject",
  "projectName": "MyGame",
  "engineVersion": "5.4",
  "modules": [
    { "name": "MyGame", "type": "Runtime", "loadingPhase": "Default" }
  ],
  "plugins": [
    { "name": "OnlineSubsystem", "enabled": true }
  ]
}
```

Errors:

* `404 uproject_not_found` — no `.uproject` at depth ≤ 3
* `409 multiple_uprojects` — multiple matches; pick one and pass `uprojectPath` explicitly when creating the project
