pass apiClient to determineBaseRepo

Our code had an unspoken assumption that only one apiClient is created
during the course of a command. Violating this assumption is fine in
almost all cases, but not when we need to do a re-auth to add a new
oauth scope to a user's token.

There is likely a more elegant solution to the problem but until then
this changes determineBaseRepo to use an existing apiClient.
This commit is contained in:
vilmibm 2020-05-13 14:55:49 -05:00
parent 3a7f56456e
commit cc1ffb0aea
7 changed files with 29 additions and 36 deletions

View file

@ -336,7 +336,7 @@ func repoFork(cmd *cobra.Command, args []string) error {
var repoToFork ghrepo.Interface
inParent := false // whether or not we're forking the repo we're currently "in"
if len(args) == 0 {
baseRepo, err := determineBaseRepo(cmd, ctx)
baseRepo, err := determineBaseRepo(apiClient, cmd, ctx)
if err != nil {
return fmt.Errorf("unable to determine base repository: %w", err)
}
@ -487,11 +487,15 @@ var Confirm = func(prompt string, result *bool) error {
func repoView(cmd *cobra.Command, args []string) error {
ctx := contextForCommand(cmd)
apiClient, err := apiClientForContext(ctx)
if err != nil {
return err
}
var toView ghrepo.Interface
if len(args) == 0 {
var err error
toView, err = determineBaseRepo(cmd, ctx)
toView, err = determineBaseRepo(apiClient, cmd, ctx)
if err != nil {
return err
}
@ -512,10 +516,6 @@ func repoView(cmd *cobra.Command, args []string) error {
}
}
apiClient, err := apiClientForContext(ctx)
if err != nil {
return err
}
repo, err := api.GitHubRepo(apiClient, toView)
if err != nil {
return err