Skip to main content
This helper wraps the /api/v1/repos/diff-commit endpoint and is designed for workflows that already have git diff --binary output available.
const diff = await fs.readFile("dist/generated.patch", "utf8");

const result = await repo.createCommitFromDiff({
  targetBranch: "main",
  expectedHeadSha: currentHeadSha,
  commitMessage: "Apply generated SDK patch",
  author: { name: "Diff Bot", email: "diff@example.com" },
  committer: { name: "Diff Bot", email: "diff@example.com" },
  diff,
});

console.log(result.commitSha);
console.log(result.refUpdate.newSha);
console.log(result.refUpdate.oldSha);
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. In Go, the Diff field accepts an io.Reader. 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

targetBranch
string
required
Branch name that will receive the commit.
commitMessage
string
required
The commit message.
author
string
required
Provide name and email for the commit author.
diff
string
required
The patch content (string, bytes, async iterable, or io.Reader in Go).
expectedHeadSha
string
Commit SHA that must match the remote tip.
baseBranch
string
Branch to seed from if target doesn’t exist.
ephemeral
string
Store in the ephemeral namespace.
ephemeralBase
string
Use when the base branch is also ephemeral.
committer
string
Provide name and email. Defaults to author if omitted.

Response

commitSha
string
The SHA of the created commit
treeSha
string
The SHA of the commit’s tree object
targetBranch
string
The branch that received the commit
packBytes
number
Size of the uploaded pack in bytes
refUpdate
object
Contains branch, oldSha/old_sha, and newSha/new_sha