Path: blob/main/components/local-app/cmd/organization-list.go
2497 views
// Copyright (c) 2023 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package cmd56import (7"context"8"time"910"github.com/bufbuild/connect-go"11v1 "github.com/gitpod-io/gitpod/components/public-api/go/experimental/v1"12"github.com/gitpod-io/local-app/pkg/prettyprint"13"github.com/spf13/cobra"14)1516// organizationListCmd lists all available organizations17var organizationListCmd = &cobra.Command{18Use: "list",19Short: "Lists organizations",20Aliases: []string{"ls"},21RunE: func(cmd *cobra.Command, args []string) error {22ctx, cancel := context.WithTimeout(cmd.Context(), 5*time.Second)23defer cancel()2425gitpod, err := getGitpodClient(ctx)26if err != nil {27return err28}2930orgs, err := gitpod.Teams.ListTeams(ctx, connect.NewRequest(&v1.ListTeamsRequest{}))31if err != nil {32return err33}3435res := make([]tabularTeam, 0, len(orgs.Msg.GetTeams()))36for _, org := range orgs.Msg.GetTeams() {37res = append(res, tabularTeam{38ID: org.Id,39Name: org.Name,40})41}42return WriteTabular(res, organizationListOpts.Format, prettyprint.WriterFormatWide)43},44}4546type tabularTeam struct {47ID string `print:"id"`48Name string `print:"name"`49}5051var organizationListOpts struct {52Format formatOpts53}5455func init() {56organizationCmd.AddCommand(organizationListCmd)57addFormatFlags(organizationListCmd, &organizationListOpts.Format)58}596061