diff --git a/pkg/cmd/browse/browse.go b/pkg/cmd/browse/browse.go index 524f9f20e..619c7f0aa 100644 --- a/pkg/cmd/browse/browse.go +++ b/pkg/cmd/browse/browse.go @@ -174,7 +174,7 @@ func parseSection(baseRepo ghrepo.Interface, opts *BrowseOptions) (string, error } } - if isNumber(opts.SelectorArg) { + if !opts.CommitFlag && isNumber(opts.SelectorArg) { return fmt.Sprintf("issues/%s", strings.TrimPrefix(opts.SelectorArg, "#")), nil } diff --git a/pkg/cmd/browse/browse_test.go b/pkg/cmd/browse/browse_test.go index 3a283f8f4..57b6ad99b 100644 --- a/pkg/cmd/browse/browse_test.go +++ b/pkg/cmd/browse/browse_test.go @@ -123,6 +123,15 @@ func TestNewCmdBrowse(t *testing.T) { }, wantsErr: false, }, + { + name: "commit hash flag", + cli: "-c 123", + wants: BrowseOptions{ + CommitFlag: true, + SelectorArg: "123", + }, + wantsErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -395,6 +404,17 @@ func Test_runBrowse(t *testing.T) { wantsErr: false, expectedURL: "https://github.com/vilmibm/gh-user-status/tree/6f1a2405cace1633d89a79c74c65f22fe78f9659/main.go", }, + { + name: "open number only commit hash", + opts: BrowseOptions{ + CommitFlag: true, + SelectorArg: "1234567890", + GitClient: &testGitClient{}, + }, + baseRepo: ghrepo.New("yanskun", "ILoveGitHub"), + wantsErr: false, + expectedURL: "https://github.com/yanskun/ILoveGitHub/commit/1234567890", + }, { name: "relative path from browse_test.go", opts: BrowseOptions{