Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions pkg/cmd/browse/browse.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ type BrowseOptions struct {
ReleasesFlag bool
SettingsFlag bool
WikiFlag bool
ActionsFlag bool
NoBrowserFlag bool
HasRepoOverride bool
}
Expand Down Expand Up @@ -116,24 +117,26 @@ func NewCmdBrowse(f *cmdutil.Factory, runF func(*BrowseOptions) error) *cobra.Co
}

if err := cmdutil.MutuallyExclusive(
"arguments not supported when using `--projects`, `--releases`, `--settings`, or `--wiki`",
"arguments not supported when using `--projects`, `--releases`, `--settings`, `--actions` or `--wiki`",
opts.SelectorArg != "",
opts.ProjectsFlag,
opts.ReleasesFlag,
opts.SettingsFlag,
opts.WikiFlag,
opts.ActionsFlag,
); err != nil {
return err
}

if err := cmdutil.MutuallyExclusive(
"specify only one of `--branch`, `--commit`, `--projects`, `--releases`, `--settings`, or `--wiki`",
"specify only one of `--branch`, `--commit`, `--projects`, `--releases`, `--settings`, `--actions` or `--wiki`",
opts.Branch != "",
opts.Commit != "",
opts.ProjectsFlag,
opts.ReleasesFlag,
opts.SettingsFlag,
opts.WikiFlag,
opts.ActionsFlag,
); err != nil {
return err
}
Expand All @@ -158,6 +161,7 @@ func NewCmdBrowse(f *cmdutil.Factory, runF func(*BrowseOptions) error) *cobra.Co
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.ActionsFlag, "actions", "a", false, "Open repository actions")
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")
cmd.Flags().StringVarP(&opts.Commit, "commit", "c", "", "Select another commit by passing in the commit SHA, default is the last commit")
Expand Down Expand Up @@ -223,6 +227,8 @@ func parseSection(baseRepo ghrepo.Interface, opts *BrowseOptions) (string, error
return "settings", nil
} else if opts.WikiFlag {
return "wiki", nil
} else if opts.ActionsFlag {
return "actions", nil
}

ref := opts.Branch
Expand Down
31 changes: 31 additions & 0 deletions pkg/cmd/browse/browse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,14 @@ func TestNewCmdBrowse(t *testing.T) {
},
wantsErr: false,
},
{
name: "actions flag",
cli: "--actions",
wants: BrowseOptions{
ActionsFlag: true,
},
wantsErr: false,
},
{
name: "no browser flag",
cli: "--no-browser",
Expand Down Expand Up @@ -102,6 +110,15 @@ func TestNewCmdBrowse(t *testing.T) {
},
wantsErr: true,
},
{
name: "combination: actions wiki",
cli: "--actions --wiki",
wants: BrowseOptions{
ActionsFlag: true,
WikiFlag: true,
},
wantsErr: true,
},
{
name: "passed argument",
cli: "main.go",
Expand Down Expand Up @@ -135,6 +152,11 @@ func TestNewCmdBrowse(t *testing.T) {
cli: "main.go --wiki",
wantsErr: true,
},
{
name: "passed argument and actions flag",
cli: "main.go --actions",
wantsErr: true,
},
{
name: "empty commit flag",
cli: "--commit",
Expand Down Expand Up @@ -215,6 +237,7 @@ func TestNewCmdBrowse(t *testing.T) {
assert.Equal(t, tt.wants.WikiFlag, opts.WikiFlag)
assert.Equal(t, tt.wants.NoBrowserFlag, opts.NoBrowserFlag)
assert.Equal(t, tt.wants.SettingsFlag, opts.SettingsFlag)
assert.Equal(t, tt.wants.ActionsFlag, opts.ActionsFlag)
assert.Equal(t, tt.wants.Commit, opts.Commit)
})
}
Expand Down Expand Up @@ -278,6 +301,14 @@ func Test_runBrowse(t *testing.T) {
baseRepo: ghrepo.New("ravocean", "ThreatLevelMidnight"),
expectedURL: "https://github.com/ravocean/ThreatLevelMidnight/wiki",
},
{
name: "actions flag",
opts: BrowseOptions{
ActionsFlag: true,
},
baseRepo: ghrepo.New("ravocean", "ThreatLevelMidnight"),
expectedURL: "https://github.com/ravocean/ThreatLevelMidnight/actions",
},
{
name: "file argument",
opts: BrowseOptions{SelectorArg: "path/to/file.txt"},
Expand Down
Loading