1package cmd
2
3import (
4 "strconv"
5 "strings"
6
7 "github.com/spf13/cobra"
8)
9
10func privateCommand() *cobra.Command {
11 cmd := &cobra.Command{
12 Use: "private REPOSITORY [true|false]",
13 Short: "Set or get a repository private property",
14 Args: cobra.RangeArgs(1, 2),
15 RunE: func(cmd *cobra.Command, args []string) error {
16 ctx := cmd.Context()
17 be, _ := fromContext(cmd)
18 rn := strings.TrimSuffix(args[0], ".git")
19
20 switch len(args) {
21 case 1:
22 if err := checkIfReadable(cmd, args); err != nil {
23 return err
24 }
25
26 isPrivate, err := be.IsPrivate(ctx, rn)
27 if err != nil {
28 return err
29 }
30
31 cmd.Println(isPrivate)
32 case 2:
33 isPrivate, err := strconv.ParseBool(args[1])
34 if err != nil {
35 return err
36 }
37 if err := checkIfCollab(cmd, args); err != nil {
38 return err
39 }
40 if err := be.SetPrivate(ctx, rn, isPrivate); err != nil {
41 return err
42 }
43 }
44 return nil
45 },
46 }
47
48 return cmd
49}