Documentation
SDK/Git•2 min read

Git

Review changes, checkpoint work, synchronize repositories, and clone a sandbox.

Browse Docs

Git

Every sandbox contains a Git repository. Use the SDK to review changes, create checkpoints, work with branches, synchronize a provider repository, or clone the sandbox elsewhere.

Review changes

const review = await sandbox.git.review();

console.log(review.files);
console.log(review.stagedPatch);
console.log(review.unstagedPatch);

review() returns the changed files and their staged and unstaged patches, making it suitable for a review interface or automated validation.

Create a checkpoint

await sandbox.git.stage({
  paths: ['app/Http/Controllers/InventoryController.php'],
});

const checkpoint = await sandbox.git.checkpoint('PHPSandbox <[email protected]>', 'Add inventory endpoint', 'main');

Use unstage() to remove paths from the index. revert() discards selected changes, so use it only after reviewing the affected paths.

Work with branches

await sandbox.git.checkout('feature/inventory', true);

const status = await sandbox.git.status();
const history = await sandbox.git.log(status.branch);

The second argument to checkout() creates the branch when it does not exist.

Synchronize with GitHub

First link a GitHub integration and attach it to the sandbox. Then create a Git target:

const target = await sandbox.git.targets.create({
  provider: 'github',
  repository: 'acme/inventory',
  branch: 'main',
  author: {
    name: 'PHPSandbox',
    email: '[email protected]',
  },
  setDefault: true,
});

await target.sync({ direction: 'both' });

Use pull, push, or both for the synchronization direction. The target retains the repository and branch configuration; the attached integration supplies authorization when synchronization runs.

Clone a sandbox repository

const credentials = await sandbox.git.credentials();

Use the returned URL, username, and password with a standard Git client. The credentials are short-lived: do not place them in source control, command history, logs, or a permanent remote URL.

Cloning creates another working copy of the repository. Use Managing sandboxes when you need another sandbox with its own environment.