From bd749b67f69cedc6fd975ba949a7dab5eedc947a Mon Sep 17 00:00:00 2001 From: Jakub Kuczys Date: Mon, 15 May 2023 01:08:01 +0200 Subject: [PATCH] Allow `gh repo set-default --view` without repo argument (#7441) --- pkg/cmd/repo/setdefault/setdefault.go | 8 ++++---- pkg/cmd/repo/setdefault/setdefault_test.go | 13 ++++++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/pkg/cmd/repo/setdefault/setdefault.go b/pkg/cmd/repo/setdefault/setdefault.go index 2cf8b19b9..d5a03baf1 100644 --- a/pkg/cmd/repo/setdefault/setdefault.go +++ b/pkg/cmd/repo/setdefault/setdefault.go @@ -86,7 +86,7 @@ func NewCmdSetDefault(f *cmdutil.Factory, runF func(*SetDefaultOptions) error) * } } - if !opts.IO.CanPrompt() && opts.Repo == nil { + if !opts.ViewMode && !opts.IO.CanPrompt() && opts.Repo == nil { return cmdutil.FlagErrorf("repository required when not running interactively") } @@ -119,10 +119,10 @@ func setDefaultRun(opts *SetDefaultOptions) error { currentDefaultRepo, _ := remotes.ResolvedRemote() if opts.ViewMode { - if currentDefaultRepo == nil { - fmt.Fprintln(opts.IO.Out, "no default repository has been set; use `gh repo set-default` to select one") - } else { + if currentDefaultRepo != nil { fmt.Fprintln(opts.IO.Out, displayRemoteRepoName(currentDefaultRepo)) + } else if opts.IO.IsStdoutTTY() { + fmt.Fprintln(opts.IO.Out, "no default repository has been set; use `gh repo set-default` to select one") } return nil } diff --git a/pkg/cmd/repo/setdefault/setdefault_test.go b/pkg/cmd/repo/setdefault/setdefault_test.go index a1c1f44ac..58871f75b 100644 --- a/pkg/cmd/repo/setdefault/setdefault_test.go +++ b/pkg/cmd/repo/setdefault/setdefault_test.go @@ -166,7 +166,8 @@ func TestDefaultRun(t *testing.T) { wantStdout: "no default repository has been set\n", }, { - name: "view mode no current default", + name: "tty view mode no current default", + tty: true, opts: SetDefaultOptions{ViewMode: true}, remotes: []*context.Remote{ { @@ -176,6 +177,16 @@ func TestDefaultRun(t *testing.T) { }, wantStdout: "no default repository has been set; use `gh repo set-default` to select one\n", }, + { + name: "view mode no current default", + opts: SetDefaultOptions{ViewMode: true}, + remotes: []*context.Remote{ + { + Remote: &git.Remote{Name: "origin"}, + Repo: repo1, + }, + }, + }, { name: "view mode with base resolved current default", opts: SetDefaultOptions{ViewMode: true},