neosourceDocs
Search docs

Get last-commit attribution for a tree

GET/api/repos/{owner}/{repo}/tree-commits

getRepositoryTreeCommits

Returns the most recent commit touching the selected path plus, per tree entry, the last first-parent commit that changed it — the data behind the file browser's commit columns.

Authentication is not described for this operation in the spec — that does not mean it is public. Check tokens and scopes.

curl

curl -X GET 'https://neosource.dev/api/repos/OWNER/REPO/tree-commits'

fetch

fetch("https://neosource.dev/api/repos/OWNER/REPO/tree-commits", {
  method: "GET",
});

Path parameters

ownerrequired

Repository owner or organization slug.

string

reporequired

Repository name.

string

Query parameters

ref

Bookmark name to read from. Defaults to the repository default branch.

string

path

Slash-delimited repository path relative to the selected ref root.

string

Responses

200Per-entry last-commit attribution

application/json

TreeCommitsResponse

object

Last-commit attribution for a tree page: the most recent commit touching the path (header bar) plus a per-entry attribution map. Served separately from the tree itself so the file list renders without waiting on the history walk.

completerequired

boolean

`false` when the history walk hit its depth cap before attributing every entry.

entriesrequired

array

Entries with a resolved last commit; entries missing here were not attributed within the walk budget.

items

TreeEntryCommitResponse

object

The most recent first-parent commit that touched one tree entry — the per-row "last commit message / age" columns of the file browser.

namerequired

string

Entry name within the tree (not a full path).

oidrequired

string

40-hex OID of the attributed commit.

summaryrequired

string

First line of the commit message.

timestamprequired

integerint64

Committer timestamp, epoch milliseconds.

latest
one of
pathrequired

string

refrequired

string

Standard errors

Bodies documented once for the whole API — see standard errors.

  • 400Bad Request — one of: invalid_input
  • 403Forbidden — one of: forbidden
  • 404Not Found — one of: not_found
  • 423Locked — one of: busy
  • 429Rate limited — retry after the interval in the `Retry-After` header
  • 500Internal server error
  • 503Service temporarily unavailable / at capacity — retry after the `Retry-After` header
  • 504Gateway timeout — the request exceeded the server's handling budget

Schemas

Referenced above. Listed here rather than expanded inline, so the same definition is not repeated at every level.

CommitSignatureResponse

object

emailrequired

string

namerequired

string

timestamprequired

integerint64

AuthorRef

object

A commit author/committer resolved to a platform account, matched at read time on a **verified** email. `None` when the commit's email is not a verified account (imported history, an unverified address, a bot) — the raw `name`/`email` on the signature is still rendered, as GitHub does.

account_idrequired

string

display_namerequired

string

emailrequired

string

handlerequired

string

CommitChecksSummary

object

Rollup of everything that checked a commit: workflow runs it triggered plus external statuses posted against it. `state` follows [`CommitStatusState::rollup`] — `failure` if anything failed, `pending` while anything is still in flight, `success` only when all green.

failedrequired

integerint64

pendingrequired

integerint64

staterequired

CommitStatusState

string

State of a single commit status, GitHub-shaped. `Error` is distinct from `Failure` on individual statuses (infrastructure/tooling breakage vs. a real red result) but the combined rollup folds both into `Failure`.

"pending""success""failure""error"

succeededrequired

integerint64

totalrequired

integerint64

CommitPullRequestRef

object

The pull request a commit belongs to, resolved at read time by matching the commit against PR heads (`is_head = true`) and historical revision heads (`is_head = false`). `None` when the commit is not any PR's (current or past) head.

is_headrequired

boolean

`true` if this commit is the PR's current head; `false` if it is only a historical revision head.

numberrequired

integerint32

statusrequired

PullRequestStatus

string

Lifecycle status of a pull request.

"open""merged""closed"

titlerequired

string