Git
Provides Git operations within a Sandbox.
Constructors
new Git()
new Git(apiClient: GitApi): GitParameters:
apiClientGitApi
Returns:
Git
Methods
add()
add(path: string, files: string[]): Promise<void>Stages the specified files for the next commit, similar to running ‘git add’ on the command line.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.filesstring[] - List of file paths or directories to stage, relative to the repository root
Returns:
Promise<void>
Examples:
// Stage a single fileawait git.add('workspace/repo', ['file.txt']);// Stage whole repositoryawait git.add('workspace/repo', ['.']);branches()
branches(path: string): Promise<ListBranchResponse>List branches in the repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.
Returns:
Promise<ListBranchResponse>- List of branches in the repository
Example:
const response = await git.branches('workspace/repo');console.log(`Branches: ${response.branches}`);checkoutBranch()
checkoutBranch(path: string, branch: string): Promise<void>Checkout branche in the repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.branchstring - Name of the branch to checkout
Returns:
Promise<void>
Example:
await git.checkoutBranch('workspace/repo', 'new-feature');clone()
clone( url: string, path: string, branch?: string, commitId?: string, username?: string,password?: string): Promise<void>Clones a Git repository into the specified path. It supports cloning specific branches or commits, and can authenticate with the remote repository if credentials are provided.
Parameters:
urlstring - Repository URL to clone frompathstring - Path where the repository should be cloned. Relative paths are resolved based on the sandbox working directory.branch?string - Specific branch to clone. If not specified, clones the default branchcommitId?string - Specific commit to clone. If specified, the repository will be left in a detached HEAD state at this commitusername?string - Git username for authenticationpassword?string - Git password or token for authentication
Returns:
Promise<void>
Examples:
// Clone the default branchawait git.clone( 'https://github.com/user/repo.git', 'workspace/repo');// Clone a specific branch with authenticationawait git.clone( 'https://github.com/user/private-repo.git', 'workspace/private', branch='develop', username='user', password='token');// Clone a specific commitawait git.clone( 'https://github.com/user/repo.git', 'workspace/repo-old', commitId='abc123');commit()
commit( path: string, message: string, author: string, email: string,allowEmpty?: boolean): Promise<GitCommitResponse>Commits staged changes.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.messagestring - Commit message describing the changesauthorstring - Name of the commit authoremailstring - Email address of the commit authorallowEmpty?boolean - Allow creating an empty commit when no changes are staged
Returns:
Promise<GitCommitResponse>
Example:
// Stage and commit changesawait git.add('workspace/repo', ['README.md']);await git.commit( 'workspace/repo', 'Update documentation', 'John Doe', 'john@example.com', true);createBranch()
createBranch(path: string, name: string): Promise<void>Create branch in the repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.namestring - Name of the new branch to create
Returns:
Promise<void>
Example:
await git.createBranch('workspace/repo', 'new-feature');deleteBranch()
deleteBranch(path: string, name: string): Promise<void>Delete branche in the repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.namestring - Name of the branch to delete
Returns:
Promise<void>
Example:
await git.deleteBranch('workspace/repo', 'new-feature');pull()
pull( path: string, username?: string,password?: string): Promise<void>Pulls changes from the remote repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.username?string - Git username for authenticationpassword?string - Git password or token for authentication
Returns:
Promise<void>
Examples:
// Pull from a public repositoryawait git.pull('workspace/repo');// Pull from a private repositoryawait git.pull( 'workspace/repo', 'user', 'token');push()
push( path: string, username?: string,password?: string): Promise<void>Push local changes to the remote repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.username?string - Git username for authenticationpassword?string - Git password or token for authentication
Returns:
Promise<void>
Examples:
// Push to a public repositoryawait git.push('workspace/repo');// Push to a private repositoryawait git.push( 'workspace/repo', 'user', 'token');status()
status(path: string): Promise<GitStatus>Gets the current status of the Git repository.
Parameters:
pathstring - Path to the Git repository root. Relative paths are resolved based on the sandbox working directory.
Returns:
Promise<GitStatus>- Current repository status including:- currentBranch: Name of the current branch
- ahead: Number of commits ahead of the remote branch
- behind: Number of commits behind the remote branch
- branchPublished: Whether the branch has been published to the remote repository
- fileStatus: List of file statuses
Example:
const status = await sandbox.git.status('workspace/repo');console.log(`Current branch: ${status.currentBranch}`);console.log(`Commits ahead: ${status.ahead}`);console.log(`Commits behind: ${status.behind}`);GitCommitResponse
Response from the git commit.
Properties:
shastring - The SHA of the commit