feat: add --releases option to gh browse (#6996)

This commit is contained in:
Owen Voke 2023-02-08 23:14:00 +00:00 committed by GitHub
parent 94fe6c7764
commit fd0af5e3aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 1 deletions

View file

@ -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 {

View file

@ -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{