github.com/supabase/cli@v1.168.1/internal/branches/list/list.go (about)

     1  package list
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"strings"
     7  
     8  	"github.com/go-errors/errors"
     9  	"github.com/spf13/afero"
    10  	"github.com/supabase/cli/internal/migration/list"
    11  	"github.com/supabase/cli/internal/utils"
    12  	"github.com/supabase/cli/internal/utils/flags"
    13  )
    14  
    15  func Run(ctx context.Context, fsys afero.Fs) error {
    16  	resp, err := utils.GetSupabase().GetBranchesWithResponse(ctx, flags.ProjectRef)
    17  	if err != nil {
    18  		return errors.Errorf("failed to list preview branches: %w", err)
    19  	}
    20  
    21  	if resp.JSON200 == nil {
    22  		return errors.New("Unexpected error listing preview branches: " + string(resp.Body))
    23  	}
    24  
    25  	table := `|ID|NAME|DEFAULT|GIT BRANCH|RESET ON PUSH|STATUS|CREATED AT (UTC)|UPDATED AT (UTC)|
    26  |-|-|-|-|-|-|-|-|
    27  `
    28  	for _, branch := range *resp.JSON200 {
    29  		gitBranch := " "
    30  		if branch.GitBranch != nil {
    31  			gitBranch = *branch.GitBranch
    32  		}
    33  		table += fmt.Sprintf(
    34  			"|`%s`|`%s`|`%t`|`%s`|`%t`|`%s`|`%s`|`%s`|\n",
    35  			branch.Id,
    36  			strings.ReplaceAll(branch.Name, "|", "\\|"),
    37  			branch.IsDefault,
    38  			strings.ReplaceAll(gitBranch, "|", "\\|"),
    39  			branch.ResetOnPush,
    40  			branch.Status,
    41  			utils.FormatTimestamp(branch.CreatedAt),
    42  			utils.FormatTimestamp(branch.UpdatedAt),
    43  		)
    44  	}
    45  
    46  	return list.RenderTable(table)
    47  }