---
title: "The git-sourced apps of an owned node and how their last push fared"
method: GET
path: "/api/github/nodes/{node_id}/sources"
tags: ["github"]
---

# The git-sourced apps of an owned node and how their last push fared

`GET /api/github/nodes/{node_id}/sources`

## 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}/sources`
- Auth: none declared

Join the node's own source list with what this cloud did about it.

The node is the authority on its sources (one bounded read of
``GET /api/services``, empty when offline or unreadable — the card
says "offline" rather than failing); the nudge records come from the
poller's memory and the status receipts from ``github_status_posts``.
An app known only from those (the node is offline, or removed it) is
still listed, with no provenance.

## Path parameters

- `node_id` string, uuid, required

## Response `200`

Successful Response

- GitHubNodeSourcesView: The source cards of one node (D-GH-C6).
  - `node_id` string, uuid, required
  - `online` boolean, required
  - `apps` GitHubAppSourceView[], required
    - `operation` ServiceOperationView: Dated operation metadata; arbitrary errors and output never enter this view.
      - `identity` string, nullable
      - `phase` string, nullable
      - `action` string, nullable
      - `started_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
      - `failure` string, nullable
    - `runtime_status` string, nullable
    - `service_name` string, required
    - `repo` string, nullable, required
    - `ref` string, nullable, required
    - `sha` string, nullable, required
    - `phase` string, nullable, required
    - `last_nudge` GitHubSourceNudgeView, required: The last nudge one app saw (D-GH-C6: "incl. ``nudge_ignored``").
      - `delivery_id` string, required
      - `repo_full_name` string, required
      - `ref` string, required
      - `sha` string, required
      - `disposition` 'matched' | 'ignored' | 'deduped', required
      - `at` string, date-time, required
    - `last_status` GitHubSourceStatusView, required: The last commit status this cloud posted for one app.
      - `state` string, required
      - `sha` string, required
      - `posted_at` string, date-time, required
    - `polling_sha` string, nullable, required
  - `truncated` boolean, required

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Validation Error

---

[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)
