package git import ( "context" "os/exec" ) type Provider struct { } func New() *Provider { return &Provider{} } func (p *Provider) Clone(ctx context.Context, url string, targetDir string) error { return exec.CommandContext(ctx, "git", "clone", url, targetDir).Run() }