Correctly surface errors when parsing pr create --repo override
This avoids a crash when passing invalid input for the `pr create --repo` flag.
This commit is contained in:
parent
f1ea794bf1
commit
b7550fbf15
1 changed files with 16 additions and 11 deletions
|
|
@ -26,10 +26,22 @@ const maxRemotesForLookup = 5
|
|||
func ResolveRemotesToRepos(remotes Remotes, client *api.Client, base string) (ResolvedRemotes, error) {
|
||||
sort.Stable(remotes)
|
||||
|
||||
hasBaseOverride := base != ""
|
||||
baseOverride, _ := ghrepo.FromFullName(base)
|
||||
foundBaseOverride := false
|
||||
result := ResolvedRemotes{
|
||||
Remotes: remotes,
|
||||
apiClient: client,
|
||||
}
|
||||
|
||||
var baseOverride ghrepo.Interface
|
||||
if base != "" {
|
||||
var err error
|
||||
baseOverride, err = ghrepo.FromFullName(base)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
result.BaseOverride = baseOverride
|
||||
}
|
||||
|
||||
foundBaseOverride := false
|
||||
var hostname string
|
||||
var repos []ghrepo.Interface
|
||||
for i, r := range remotes {
|
||||
|
|
@ -47,19 +59,12 @@ func ResolveRemotesToRepos(remotes Remotes, client *api.Client, base string) (Re
|
|||
break
|
||||
}
|
||||
}
|
||||
if hasBaseOverride && !foundBaseOverride {
|
||||
if baseOverride != nil && !foundBaseOverride {
|
||||
// additionally, look up the explicitly specified base repo if it's not
|
||||
// already covered by git remotes
|
||||
repos = append(repos, baseOverride)
|
||||
}
|
||||
|
||||
result := ResolvedRemotes{
|
||||
Remotes: remotes,
|
||||
apiClient: client,
|
||||
}
|
||||
if hasBaseOverride {
|
||||
result.BaseOverride = baseOverride
|
||||
}
|
||||
networkResult, err := api.RepoNetwork(client, repos)
|
||||
if err != nil {
|
||||
return result, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue