From fd0af5e3aa3fd832f219aba647e6a5cc9c20958d Mon Sep 17 00:00:00 2001 From: Owen Voke Date: Wed, 8 Feb 2023 23:14:00 +0000 Subject: [PATCH] feat: add `--releases` option to `gh browse` (#6996) --- pkg/cmd/browse/browse.go | 7 ++++++- pkg/cmd/browse/browse_test.go | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/browse/browse.go b/pkg/cmd/browse/browse.go index de18ad416..524f9f20e 100644 --- a/pkg/cmd/browse/browse.go +++ b/pkg/cmd/browse/browse.go @@ -35,6 +35,7 @@ type BrowseOptions struct { Branch string CommitFlag bool ProjectsFlag bool + ReleasesFlag bool SettingsFlag bool WikiFlag bool NoBrowserFlag bool @@ -94,12 +95,13 @@ func NewCmdBrowse(f *cmdutil.Factory, runF func(*BrowseOptions) error) *cobra.Co } if err := cmdutil.MutuallyExclusive( - "specify only one of `--branch`, `--commit`, `--projects`, `--wiki`, or `--settings`", + "specify only one of `--branch`, `--commit`, `--releases`, `--projects`, `--wiki`, or `--settings`", opts.Branch != "", opts.CommitFlag, opts.WikiFlag, opts.SettingsFlag, opts.ProjectsFlag, + opts.ReleasesFlag, ); err != nil { return err } @@ -116,6 +118,7 @@ func NewCmdBrowse(f *cmdutil.Factory, runF func(*BrowseOptions) error) *cobra.Co cmdutil.EnableRepoOverride(cmd, f) cmd.Flags().BoolVarP(&opts.ProjectsFlag, "projects", "p", false, "Open repository projects") + cmd.Flags().BoolVarP(&opts.ReleasesFlag, "releases", "r", false, "Open repository releases") cmd.Flags().BoolVarP(&opts.WikiFlag, "wiki", "w", false, "Open repository wiki") cmd.Flags().BoolVarP(&opts.SettingsFlag, "settings", "s", false, "Open repository settings") cmd.Flags().BoolVarP(&opts.NoBrowserFlag, "no-browser", "n", false, "Print destination URL instead of opening the browser") @@ -160,6 +163,8 @@ func parseSection(baseRepo ghrepo.Interface, opts *BrowseOptions) (string, error if opts.SelectorArg == "" { if opts.ProjectsFlag { return "projects", nil + } else if opts.ReleasesFlag { + return "releases", nil } else if opts.SettingsFlag { return "settings", nil } else if opts.WikiFlag { diff --git a/pkg/cmd/browse/browse_test.go b/pkg/cmd/browse/browse_test.go index 75e615be0..3a283f8f4 100644 --- a/pkg/cmd/browse/browse_test.go +++ b/pkg/cmd/browse/browse_test.go @@ -47,6 +47,14 @@ func TestNewCmdBrowse(t *testing.T) { }, wantsErr: false, }, + { + name: "releases flag", + cli: "--releases", + wants: BrowseOptions{ + ReleasesFlag: true, + }, + wantsErr: false, + }, { name: "wiki flag", cli: "--wiki", @@ -141,6 +149,7 @@ func TestNewCmdBrowse(t *testing.T) { assert.Equal(t, tt.wants.Branch, opts.Branch) assert.Equal(t, tt.wants.SelectorArg, opts.SelectorArg) assert.Equal(t, tt.wants.ProjectsFlag, opts.ProjectsFlag) + assert.Equal(t, tt.wants.ReleasesFlag, opts.ReleasesFlag) assert.Equal(t, tt.wants.WikiFlag, opts.WikiFlag) assert.Equal(t, tt.wants.NoBrowserFlag, opts.NoBrowserFlag) assert.Equal(t, tt.wants.SettingsFlag, opts.SettingsFlag) @@ -190,6 +199,14 @@ func Test_runBrowse(t *testing.T) { baseRepo: ghrepo.New("ttran112", "7ate9"), expectedURL: "https://github.com/ttran112/7ate9/projects", }, + { + name: "releases flag", + opts: BrowseOptions{ + ReleasesFlag: true, + }, + baseRepo: ghrepo.New("ttran112", "7ate9"), + expectedURL: "https://github.com/ttran112/7ate9/releases", + }, { name: "wiki flag", opts: BrowseOptions{