From 3d58fa785fc7f35aa08267db5b5080aaa583953a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Wed, 9 Sep 2020 17:01:29 +0200 Subject: [PATCH] Add the `release view --web` flag --- pkg/cmd/release/view/view.go | 10 ++++++++++ pkg/cmd/release/view/view_test.go | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/pkg/cmd/release/view/view.go b/pkg/cmd/release/view/view.go index 63adf9901..0e5710ce6 100644 --- a/pkg/cmd/release/view/view.go +++ b/pkg/cmd/release/view/view.go @@ -22,6 +22,7 @@ type ViewOptions struct { BaseRepo func() (ghrepo.Interface, error) TagName string + WebMode bool } func NewCmdView(f *cmdutil.Factory, runF func(*ViewOptions) error) *cobra.Command { @@ -55,6 +56,8 @@ func NewCmdView(f *cmdutil.Factory, runF func(*ViewOptions) error) *cobra.Comman }, } + cmd.Flags().BoolVarP(&opts.WebMode, "web", "w", false, "Open the release in the browser") + return cmd } @@ -83,6 +86,13 @@ func viewRun(opts *ViewOptions) error { } } + if opts.WebMode { + if opts.IO.IsStdoutTTY() { + fmt.Fprintf(opts.IO.ErrOut, "Opening %s in your browser.\n", utils.DisplayURL(release.HTMLURL)) + } + return utils.OpenInBrowser(release.HTMLURL) + } + if opts.IO.IsStdoutTTY() { if err := renderReleaseTTY(opts.IO, release); err != nil { return err diff --git a/pkg/cmd/release/view/view_test.go b/pkg/cmd/release/view/view_test.go index df6ee0860..dba25b680 100644 --- a/pkg/cmd/release/view/view_test.go +++ b/pkg/cmd/release/view/view_test.go @@ -32,6 +32,7 @@ func Test_NewCmdView(t *testing.T) { isTTY: true, want: ViewOptions{ TagName: "v1.2.3", + WebMode: false, }, }, { @@ -40,6 +41,16 @@ func Test_NewCmdView(t *testing.T) { isTTY: true, want: ViewOptions{ TagName: "", + WebMode: false, + }, + }, + { + name: "web mode", + args: "-w", + isTTY: true, + want: ViewOptions{ + TagName: "", + WebMode: true, }, }, } @@ -78,6 +89,7 @@ func Test_NewCmdView(t *testing.T) { } assert.Equal(t, tt.want.TagName, opts.TagName) + assert.Equal(t, tt.want.WebMode, opts.WebMode) }) } }