Перейти к содержимому

Работа с Git

Git установлен в стандартном образе песочницы.

mjs
import { Sandbox } from "@abox-dev/sdk";

const sandbox = await Sandbox.create();
const repo = "/home/user/project";

try {
  await sandbox.commands.run(`git init --initial-branch=main ${repo}`);
  await sandbox.commands.run(
    'git config user.name "AgentBox User" && git config user.email "user@example.com"',
    { cwd: repo },
  );

  await sandbox.files.write(`${repo}/README.md`, "# AgentBox project\n");
  await sandbox.commands.run(
    "git add README.md && git commit -m 'Initial commit'",
    {
      cwd: repo,
    },
  );

  const result = await sandbox.commands.run("git log -1 --oneline", {
    cwd: repo,
  });
  console.log(result.stdout);
} finally {
  await sandbox.kill();
}

Для команд status, branch, pull и push передавайте каталог репозитория в cwd. git clone можно запустить из родительского каталога.

Для частных репозиториев нужны учётные данные Git-провайдера. Передавайте короткоживущие данные доступа во время выполнения. Не сохраняйте токены в шаблоне, метаданных песочницы или URL удалённого репозитория в .git/config.