---
title: "Inspect a granted repository's build on an owned node"
method: POST
path: "/api/github/nodes/{node_id}/deploy/preview"
tags: ["github"]
---

# Inspect a granted repository's build on an owned node

`POST /api/github/nodes/{node_id}/deploy/preview`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/github/nodes/{node_id}/deploy/preview`
- Auth: none declared

Prepares scoped repository access and runs the node's build inspection. Does not create a service or write its auto-deploy setting.

## Path parameters

- `node_id` string, uuid, required

## Request body

- GitHubDeployRequest: Deploy ``repo`` on a node from the console (D-GH-C6 "Deploy from GitHub"). ``repo`` is ``owner/name`` of a repository one of this account's *live* installations grants; ``name`` is the service name the daemon will use (its own DNS-label grammar); ``ref`` is a branch or tag, the repository's default branch when omitted; ``auto_deploy`` defaults **on** (daemon plan §6 Q1): a push to ``ref`` redeploys the app. "Add service": ``project_id`` + ``service`` (both or neither) deploy into an existing owned project instead of naming a new one; the machine labels the service ``<service>--<project>`` and ``name`` is not sent. A joined row refuses ``auto_deploy``, so asking for it is a 422 here.
  - `repo` string, required
  - `name` string, nullable
  - `ref` string, nullable
  - `auto_deploy` boolean
  - `port` integer, nullable
  - `build_settings` GitHubBuildSettings: Explicit overrides only; null resets a field and false disables the build.
    - `preset` 'node' | 'nextjs' | 'python' | 'dockerfile', nullable
    - `install` string, nullable
    - `build` union
      - string
      - false
    - `start` string, nullable
    - `node_version` string, nullable
    - `package_manager` string, nullable
    - `subdir` string, nullable
    - `public_env` object, nullable
  - `project_id` string, nullable
  - `service` string, nullable

## Response `200`

Successful Response

- GitHubBuildPreviewView: Advisory build inspection; no service or auto-deploy setting is written.
  - `build` GitHubBuildPlan, required: Project only the daemon's public build fields, never its full response.
    - `preset` 'node' | 'nextjs' | 'python' | 'dockerfile', nullable
    - `framework` string, nullable
    - `node_version` string, nullable
    - `package_manager` string, nullable
    - `install` string, nullable
    - `build` union
      - string
      - false
    - `start` string, nullable
    - `subdir` string
    - `public_env` object
    - `commit_sha` string, nullable
    - `sources` object
    - `warnings` string[]
  - `port` integer, required
  - `node_versions` string[]
  - `presets` string[]
  - `public_env` boolean

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Content
- `502`: Bad Gateway

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
