Merge pull request #12091 from rneatherway/browse-actions

Add gh browse --actions flag
This commit is contained in:
Babak K. Shandiz 2025-12-11 11:57:10 +00:00 committed by GitHub
commit adbc7178c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 39 additions and 2 deletions

View file

@ -43,6 +43,7 @@ type BrowseOptions struct {
ReleasesFlag bool
SettingsFlag bool
WikiFlag bool
ActionsFlag bool
NoBrowserFlag bool
HasRepoOverride bool
}
@ -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
}
@ -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")
@ -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

View file

@ -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",
@ -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",
@ -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",
@ -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)
})
}
@ -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"},