# Get a commit note

Returns the Git note attached to a commit. `note` is null when it has none.

## Endpoint
GET `/v1/spaces/{spaceId}/source/notes`

## 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).
- `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
- `connectionType` string required
  - default: "connected"
  - Allowed: `connected`, `hosted`
- `sha` string required
  - min length 1

## Responses
### 200 Response for status 200
- `$schema` string <uri>
  - Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
- `data` object required
  - `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
  - `note` object | any required
    - `sha` string required
    - `note` string required
    - `refSha` string required

## Error Response
- `defaultError`. Every 4xx and 5xx response is one RFC 9457 problem document served as `application/problem+json`.
  - `$schema` string <uri>
  - `type` string required
    - URL of the documentation page for this error. Derived from `code`.
  - `title` string required
    - Human-readable name of the error type. Derived from `code`.
  - `status` integer required
    - HTTP status of the response, repeated in the body.
  - `detail` string required
    - What went wrong in this request.
  - `code` string required
    - Stable snake_case error code. Match on this, not on `detail`.
  - `pointer` string
    - RFC 6901 JSON Pointer to the request field or batch entry that failed, for example `/files/37/path`. Present on validation failures.
  - `details` object
    - Machine-readable context keyed by the error code.
  - `suggestions` string[]
    - Recovery steps safe to show to a person.
  - `next` string[]
    - Commands or API requests to run next, usable as written.
  - `requestId` string required
    - ID of this request, from the `X-Request-Id` header or generated. Quote it when contacting support.
