MCPcopy
hub / github.com/cli/cli / validateRepoOrTeamFlag

Function validateRepoOrTeamFlag

pkg/cmd/project/unlink/unlink.go:112–153  ·  view source on GitHub ↗
(opts *unlinkOpts)

Source from the content-addressed store, hash-verified

110}
111
112func validateRepoOrTeamFlag(opts *unlinkOpts) error {
113
114 unlinkedTarget := ""
115 if opts.repo != "" {
116 unlinkedTarget = opts.repo
117 } else if opts.team != "" {
118 unlinkedTarget = opts.team
119 }
120
121 if strings.Contains(unlinkedTarget, "/") {
122 nameArgs := strings.Split(unlinkedTarget, "/")
123 var host, owner, name string
124
125 if len(nameArgs) == 2 {
126 owner = nameArgs[0]
127 name = nameArgs[1]
128 } else if len(nameArgs) == 3 {
129 host = nameArgs[0]
130 owner = nameArgs[1]
131 name = nameArgs[2]
132 } else {
133 if opts.repo != "" {
134 return fmt.Errorf("expected the \"[HOST/]OWNER/REPO\" or \"REPO\" format, got \"%s\"", unlinkedTarget)
135 } else if opts.team != "" {
136 return fmt.Errorf("expected the \"[HOST/]OWNER/TEAM\" or \"TEAM\" format, got \"%s\"", unlinkedTarget)
137 }
138 }
139
140 if opts.owner != "" && opts.owner != owner {
141 return fmt.Errorf("'%s' has different owner from '%s'", unlinkedTarget, opts.owner)
142 }
143
144 opts.owner = owner
145 opts.host = host
146 if opts.repo != "" {
147 opts.repo = name
148 } else if opts.team != "" {
149 opts.team = name
150 }
151 }
152 return nil
153}
154
155func runUnlink(config unlinkConfig) error {
156 canPrompt := config.io.CanPrompt()

Callers 1

NewCmdUnlinkFunction · 0.70

Calls 2

ContainsMethod · 0.80
ErrorfMethod · 0.65

Tested by

no test coverage detected