40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package create
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/go-errors/errors"
|
|
"github.com/spf13/afero"
|
|
"github.com/supabase/cli/internal/gen/keys"
|
|
"github.com/supabase/cli/internal/utils"
|
|
"github.com/supabase/cli/internal/utils/flags"
|
|
"github.com/supabase/cli/pkg/api"
|
|
)
|
|
|
|
func Run(ctx context.Context, body api.CreateBranchBody, fsys afero.Fs) error {
|
|
gitBranch := keys.GetGitBranchOrDefault("", fsys)
|
|
if len(body.BranchName) == 0 && len(gitBranch) > 0 {
|
|
title := fmt.Sprintf("Do you want to create a branch named %s?", utils.Aqua(gitBranch))
|
|
if shouldCreate, err := utils.NewConsole().PromptYesNo(ctx, title, true); err != nil {
|
|
return err
|
|
} else if !shouldCreate {
|
|
return errors.New(context.Canceled)
|
|
}
|
|
body.BranchName = gitBranch
|
|
}
|
|
body.GitBranch = &gitBranch
|
|
|
|
resp, err := utils.GetSupabase().V1CreateABranchWithResponse(ctx, flags.ProjectRef, body)
|
|
if err != nil {
|
|
return errors.Errorf("failed to create preview branch: %w", err)
|
|
}
|
|
|
|
if resp.JSON201 == nil {
|
|
return errors.New("Unexpected error creating preview branch: " + string(resp.Body))
|
|
}
|
|
|
|
fmt.Println("Created preview branch:", resp.JSON201.Id)
|
|
return nil
|
|
}
|