# Get a source commit

Read commit metadata, including parentShas in Git order. An empty parentShas array identifies a root commit.

## Endpoint

GET `/v1/spaces/{spaceId}/source/commit`

## Authorization

`Authorization` Bearer token · header required

`Authorization: Bearer <token>` with an API key (`sfa_` prefix), an OAuth access token, a session token, or a Space machine credential (`sfm_` prefix).

or

`Authorization` OAuth2 access token · header required

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

## Scopes:

`spaces:read`

## Path parameters

`spaceId` string required

## Query parameters

- `branch` string (min length 1)
- `connectionType` string required (default: "connected")
  - Allowed: `connected` `hosted`
- `savedOnly` boolean
- `sha` string required (min length 1)

## Responses

### 200 Response for status 200

- `$schema` string <uri>
  - Canonical JSON Schema URL for this response body.
- `data` object required
  - `commit` object required
    - `authorEmail` string required
    - `authorName` string required
    - `committerEmail` string required
    - `committerName` string required
    - `date` string required
    - `message` string required
    - `parentShas` string[] required
      - Parent commit SHAs in Git order. The array is empty for a root commit.
    - `sha` string required
    - `signature` string | any required
      - Armored commit signature. Null when the commit is unsigned.
  - `repositoryConnection` object required
    - `id` string required
      - Source connection ID (`rpc_` prefix).
    - `spaceId` string required
      - Space this connection feeds.
    - `provider` string required
      - Git host the repository lives on.
      - Allowed: `github` `gitlab` `bitbucket` `generic`
    - `connectionType` string required
      - `connected` for a repository linked from a Git host, `hosted` for the mirror Spacefast hosts and the caller pushes to.
      - Allowed: `connected` `hosted`
    - `repositoryId` string | any required
      - Identifier of the mirror that content reads and builds run against. Null when no mirror is bound yet.
    - `installationId` string | any required
      - GitHub App installation the connection reads through. Null for a hosted mirror. (default: null)
    - `cloneUrlConfigured` boolean required
      - Whether a clone URL is stored. The URL itself is not returned. (default: false)
    - `upstreamUrlConfigured` boolean required
      - Whether an upstream URL to pull from is stored. The URL itself is not returned. (default: false)
    - `repositoryName` string required
      - Repository name without its owner.
    - `repositoryFullName` string required
      - Repository name as `owner/name`.
    - `defaultBranch` string required
      - Branch the Git host treats as the repository default.
    - `productionBranch` string required
      - Branch whose pushes produce production builds, and the ref content reads fall back to when none is given.
    - `credentialConfigured` boolean required
      - Whether a Git credential is stored. The credential itself is never returned.
    - `autoDeployProduction` boolean required
      - Whether a push to the production branch queues a build.
    - `autoDeployPreviews` boolean required
      - Whether a push to any other branch or a pull request queues a preview build.
    - `buildSettings` object required
      - Install, build, and output settings each build runs with.
        - `rootDirectory` string | any required
          - Directory the build runs in, relative to the source root. Null builds at the root. (default: null)
        - `installDirectory` string | any required
          - Directory dependencies install into, relative to the source root. Null installs in the build directory. (default: null)
        - `installCommand` string | any required
          - Command that installs dependencies. Null lets the build runner pick one. (default: null)
        - `buildCommand` string | any required
          - Command that produces the output. Null lets the build runner pick one. (default: null)
        - `outputDirectory` string | any required
          - Directory the built output is collected from, relative to the build directory. Null lets the build runner detect it. (default: null)
        - `ignoredBuildCommand` string | any required
          - Command run before the build to decide whether the build is needed. Exiting 0 ends the build as `skipped`; any other exit code continues. Null always builds. (default: null)
        - `frameworkPreset` string | any required
          - Framework the source builds with, for example `next` or `vite`. Null lets the build runner detect it. (default: null)
        - `platformPreset` string | any required
          - Platform build convention the source follows, for example `vercel` or `netlify`. Null lets the build runner detect it. (default: null)
        - `allowUnsupportedPlatformFeatures` boolean required
          - Runs the build even when the source declares platform features Spacefast does not support. Defaults to `false`, which refuses those sources. (default: false)
        - `timeoutSeconds` integer required
          - Wall-clock budget for the run, in seconds. Between 60 and 7200; defaults to 900. (min 60 · max 7200 · default: 900)
    - `syncStatus` string required
      - `idle` before the first sync, `syncing` while one runs, `ready` once content reads work, `failed` when the last one did not finish.
      - Allowed: `idle` `syncing` `ready` `failed`
    - `providerAccessStatus` string required
      - Whether the Git host still grants access. Anything other than `active` blocks builds until the caller reinstalls or reauthorizes. (default: "active")
      - Allowed: `active` `suspended` `revoked` `reauthorization_required`
    - `providerAccessError` string | any required
      - What the Git host reported when access stopped working. Null while access holds. (default: null)
    - `lastSyncedAt` string <date-time> | any required
      - ISO 8601 timestamp of the last sync that finished. Null before the first one.
    - `lastSyncError` string | any required
      - Why the last sync failed. Null after a sync that succeeded.
    - `syncRunId` string | any required
      - Identifier of the sync in flight. Null when no sync is running.
    - `connectedUserId` string | any required
      - User who last authorized or changed the connection. Null when no user did.
    - `createdAt` string <date-time> required
      - ISO 8601 timestamp when the connection was created.
    - `updatedAt` string <date-time> required
      - ISO 8601 timestamp of the last change.
- `repositoryId` string required

## Error Responses

### 4xx and 5xx errors

Every 4xx and 5xx response is one RFC 9457 problem document served as `application/problem+json`.
