...

Source file src/edge-infra.dev/pkg/tools/github/teamster/resolve.go

Documentation: edge-infra.dev/pkg/tools/github/teamster

     1  package teamster
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"strings"
     7  
     8  	"sigs.k8s.io/yaml"
     9  
    10  	"edge-infra.dev/pkg/lib/cli/sink"
    11  	"edge-infra.dev/pkg/tools/github/ghx"
    12  )
    13  
    14  func NewCmdResolve() *sink.Command {
    15  	var (
    16  		ref, repo, org string
    17  		gh             = &ghx.GHX{Optional: true}
    18  	)
    19  
    20  	cmd := &sink.Command{
    21  		Use:        "resolve [flags] <teams file>",
    22  		Short:      "Resolve full team configuration",
    23  		Flags:      commonFlags(&org, &repo, &ref),
    24  		Extensions: []sink.Extension{gh},
    25  		Exec: func(ctx context.Context, r sink.Run) error {
    26  			if len(r.Args()) < 1 {
    27  				return fmt.Errorf("path to teams file is required")
    28  			}
    29  
    30  			t, err := getTeam(ctx, r.Args()[0], org, repo, ref, gh.V3)
    31  			if err != nil {
    32  				return err
    33  			}
    34  
    35  			data, err := yaml.Marshal(t)
    36  			if err != nil {
    37  				return err
    38  			}
    39  			fmt.Fprintln(r.Out(), strings.TrimSpace(string(data)))
    40  
    41  			return nil
    42  		},
    43  	}
    44  
    45  	return cmd
    46  }
    47  

View as plain text