sandbox

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2026 License: MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddSSHKey

func AddSSHKey(ctx context.Context, client *circleci.Client, sandboxID, publicKey, publicKeyFile string) (*circleci.AddSSHKeyResponse, error)

func Create

func Create(ctx context.Context, client *circleci.Client, orgID, name, image string) (*circleci.Sandbox, error)

func Exec

func Exec(ctx context.Context, client *circleci.Client, sandboxID, command string, args []string) (*circleci.ExecResponse, error)

func InteractiveShell added in v0.7.1

func InteractiveShell(ctx context.Context, session *Session) (err error)

InteractiveShell opens an interactive shell session to the sandbox with PTY. It intentionally uses os.Stdin/os.Stdout/os.Stderr directly rather than iostream.Streams: term.MakeRaw and term.GetSize require a real *os.File fd, and PTY I/O must be wired to the process's actual terminal.

func List

func List(ctx context.Context, client *circleci.Client, orgID string) ([]circleci.Sandbox, error)

func Prepare

func Prepare(ctx context.Context, claude *anthropic.Client, dockerSudo bool, io iostream.Streams, stdin io.Reader) error

Prepare generates a Dockerfile, builds it, and runs tests inside the container.

func SSH

func SSH(ctx context.Context, client *circleci.Client, sandboxID, identityFile, authSock string, args []string, io iostream.Streams) error

SSH opens a session and either runs a command or starts an interactive shell.

func ShellEscape

func ShellEscape(arg string) string

ShellEscape escapes a string for safe use in a POSIX shell single-quoted context.

func ShellJoin

func ShellJoin(args []string) string

ShellJoin joins args into a shell command string with POSIX single-quote escaping.

func Sync

func Sync(ctx context.Context, client *circleci.Client, sandboxID, identityFile, authSock, dest string, bootstrap bool, io iostream.Streams) error

Sync synchronises local changes to a sandbox over SSH. If bootstrap is true it clones the repo on the sandbox first.

Types

type ExecResult

type ExecResult struct {
	Stdout   string
	Stderr   string
	ExitCode int
}

ExecResult holds the output of a command executed over SSH.

func ExecOverSSH

func ExecOverSSH(ctx context.Context, session *Session, command string, stdin io.Reader) (_ *ExecResult, err error)

ExecOverSSH connects to the sandbox via SSH-over-TLS and executes a command.

type Session

type Session struct {
	URL          string // sandbox domain
	IdentityFile string // path to SSH private key (empty when using agent)
	KnownHosts   string // path to known_hosts file
	UseAgent     bool   // true when authenticating via ssh-agent
	AuthSock     string // SSH_AUTH_SOCK path (only used when UseAgent is true)
}

Session holds the info needed to SSH into a sandbox. It is a plain value type with no open connections or resources to close. Each call to ExecOverSSH opens and closes its own SSH connection.

func OpenSession

func OpenSession(ctx context.Context, client *circleci.Client, sandboxID, identityFile, authSock string) (*Session, error)

OpenSession registers an SSH key with the sandbox and returns session info. authSock is the SSH_AUTH_SOCK path; when non-empty and no identityFile is given, the agent is tried first.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL