in cmd/cloudshell_open/project.go [37:55]
func listProjects() ([]string, error) {
client, err := cloudresourcemanager.NewService(context.TODO())
if err != nil {
return nil, fmt.Errorf("failed to initialize cloudresourcemanager client: %w", err)
}
var out []string
if err := client.Projects.List().PageSize(1000).Pages(context.TODO(), func(resp *cloudresourcemanager.ListProjectsResponse) error {
for _, p := range resp.Projects {
if p.LifecycleState == "ACTIVE" {
out = append(out, p.ProjectId)
}
}
return nil
}); err != nil {
return nil, fmt.Errorf("failed to list GCP projects: %w", err)
}
sort.Strings(out)
return out, nil
}