diff --git a/pkg/commands/hosting_service/definitions.go b/pkg/commands/hosting_service/definitions.go index d6b359b0755..ccb98f0fd60 100644 --- a/pkg/commands/hosting_service/definitions.go +++ b/pkg/commands/hosting_service/definitions.go @@ -4,7 +4,7 @@ package hosting_service // at https://regex101.com using the flavor Golang var defaultUrlRegexStrings = []string{ `^(?:https?|ssh)://[^/]+/(?P.*)/(?P.*?)(?:\.git)?$`, - `^.*?@.*:/*(?P.*)/(?P.*?)(?:\.git)?$`, + `^(.*?@)?.*:/*(?P.*)/(?P.*?)(?:\.git)?$`, } var defaultRepoURLTemplate = "https://{{.webDomain}}/{{.owner}}/{{.repo}}" diff --git a/pkg/commands/hosting_service/hosting_service_test.go b/pkg/commands/hosting_service/hosting_service_test.go index 1856f21e0c7..595ac1ebe60 100644 --- a/pkg/commands/hosting_service/hosting_service_test.go +++ b/pkg/commands/hosting_service/hosting_service_test.go @@ -56,6 +56,16 @@ func TestGetPullRequestURL(t *testing.T) { assert.Equal(t, "https://github.com/peter/calculator/compare/feature%2Fsum-operation?expand=1", url) }, }, + { + testName: "Opens a link to new pull request on github custom SSH config alias and a corresponding service config", + from: "feature/sum-operation", + remoteUrl: "github:peter/calculator.git", + configServiceDomains: map[string]string{"github": "github:github.com"}, + test: func(url string, err error) { + assert.NoError(t, err) + assert.Equal(t, "https://github.com/peter/calculator/compare/feature%2Fsum-operation?expand=1", url) + }, + }, { testName: "Opens a link to new pull request on github with extra slash removed", from: "feature/sum-operation", @@ -133,6 +143,16 @@ func TestGetPullRequestURL(t *testing.T) { assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fui", url) }, }, + { + testName: "Opens a link to new pull request on gitlab with custom SSH config alias and a corresponding service config", + from: "feature/ui", + remoteUrl: "gitlab:peter/calculator.git", + configServiceDomains: map[string]string{"gitlab": "gitlab:gitlab.com"}, + test: func(url string, err error) { + assert.NoError(t, err) + assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fui", url) + }, + }, { testName: "Opens a link to new pull request on gitlab with extra slash removed", from: "feature/ui",