/api/v1/repos/diff-commit endpoint and is designed for workflows that already have git diff --binary output available.
createCommitFromDiff shares the same branch metadata (expectedHeadSha, baseBranch,
ephemeral, ephemeralBase) as createCommit. Instead of calling .addFile(), pass the patch
contents through the diff field. The SDK accepts strings, Uint8Array, ArrayBuffer, Blob/File
objects, or any iterable/async iterable of byte chunks and handles chunking + base64 encoding.
The gateway applies the patch with git apply --cached --binary, so make sure your diff is
compatible with that command. It must include file headers (diff --git), mode lines, and hunk
headers. Empty patches and patches that do not apply cleanly result in a RefUpdateError with the
mapped status ( conflict, precondition_failed, etc.) and partial ref update information.
Options
| Parameter | Type | Description |
|---|---|---|
targetBranch (TypeScript)target_branch (Python) | Required | Branch name that will receive the commit. |
commitMessage (TypeScript)commit_message (Python) | Required | The commit message. |
author | Required | Provide name and email for the commit author. |
diff | Required | The patch content (string, bytes, or async iterable). |
expectedHeadSha (TypeScript)expected_head_sha (Python) | Optional | Commit SHA that must match the remote tip. |
baseBranch (TypeScript)base_branch (Python) | Optional | Branch to seed from if target doesn’t exist. |
ephemeral | Optional | Store in the ephemeral namespace. |
ephemeralBase (TypeScript)ephemeral_base (Python) | Optional | Use when the base branch is also ephemeral. |
committer | Optional | Provide name and email. Defaults to author if omitted. |
Response
| Field | Type | Description |
|---|---|---|
commitSha (TypeScript)commit_sha (Python) | String | The SHA of the created commit |
treeSha (TypeScript)tree_sha (Python) | String | The SHA of the commit’s tree object |
targetBranch (TypeScript)target_branch (Python) | String | The branch that received the commit |
packBytes (TypeScript)pack_bytes (Python) | Number | Size of the uploaded pack in bytes |
refUpdate (TypeScript)ref_update (Python) | Object | Contains branch, oldSha/old_sha, and newSha/new_sha |