Git
The git helper provides a thin wrapper around invoking the git executable for repository operations.
Methods
Section titled “Methods”defaultBranch
Section titled “defaultBranch”Resolves the default branch, typically main or master, in the repository.
const df = await git.defaultBranch();lastTag
Section titled “lastTag”Gets the last tag in the repository.
const tag = await git.lastTag();branch
Section titled “branch”Gets the current branch of the repository.
const branchName = await git.branch();Executes a git command in the repository and returns the stdout.
const output = await git.exec(["status"]);listBranches
Section titled “listBranches”Lists the branches in the git repository.
const branches = await git.listBranches();listFiles
Section titled “listFiles”Finds specific files in the git repository.
const files = await git.listFiles("modified");Gets the diff for the current repository state.
const diffOutput = await git.diff({ staged: true });Lists the commits with various filters. Includes sha, author, date, message and file names.
const commits = await git.log({ ... });changedFiles
Section titled “changedFiles”Lists the files changed in the last commit.
const changedFiles = await git.changedFiles({ ... });Configuring Ignores
Section titled “Configuring Ignores”Since GenAIScript uses git, it already supports the .gitignore instructions. You can also provide additional repository-wide ignore through the .gitignore.genai file at the workspace root.
**/genaiscript.d.tsShallow clones
Section titled “Shallow clones”You can create cached shallow clones of repositories to work on multiple repositories.
The shallowClone method return a git client instance.
The clones are created under the .genaiscript/git/... directory and are cached based
on the repository/branch/commit information.
const clone = await git.shallowClone("microsoft/genaiscript");You can provide options to force the cloning
and/or running the install command after cloning.
const clone = await git.shallowClone("microsoft/genaiscript", { force: true, install: true,});Git in other repositories
Section titled “Git in other repositories”Use git.client to open a git client on a different working directory. This allows you to run git commands on a different repository.
const other = git.client("/path/to/other/repo");const branch = await other.branch();