From a67a08eeac3d648966caacfb00e59d1b2facaf27 Mon Sep 17 00:00:00 2001 From: Konstantin Mikhailov Date: Wed, 24 Aug 2022 11:00:57 +1000 Subject: [PATCH] Fix open commit in browser for some Gitlab repos --- pkg/commands/hosting_service/definitions.go | 2 +- .../hosting_service/hosting_service_test.go | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/pkg/commands/hosting_service/definitions.go b/pkg/commands/hosting_service/definitions.go index c53ee0507..39a554c3f 100644 --- a/pkg/commands/hosting_service/definitions.go +++ b/pkg/commands/hosting_service/definitions.go @@ -3,7 +3,7 @@ package hosting_service // if you want to make a custom regex for a given service feel free to test it out // at regoio.herokuapp.com var defaultUrlRegexStrings = []string{ - `^(?:https?|ssh)://.*/(?P.*)/(?P.*?)(?:\.git)?$`, + `^(?:https?|ssh)://[^/]+/(?P.*)/(?P.*?)(?:\.git)?$`, `^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 b92daa98d..ded310c85 100644 --- a/pkg/commands/hosting_service/hosting_service_test.go +++ b/pkg/commands/hosting_service/hosting_service_test.go @@ -47,6 +47,15 @@ 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 with https remote url", + from: "feature/sum-operation", + remoteUrl: "https://github.com/peter/calculator.git", + 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 bitbucket with specific target branch", from: "feature/profile-page/avatar", @@ -77,6 +86,16 @@ func TestGetPullRequestURL(t *testing.T) { assert.Equal(t, "https://github.com/peter/calculator/compare/feature%2Foperations...feature%2Fsum-operation?expand=1", url) }, }, + { + testName: "Opens a link to new pull request on github with https remote url with specific target branch", + from: "feature/sum-operation", + to: "feature/operations", + remoteUrl: "https://github.com/peter/calculator.git", + test: func(url string, err error) { + assert.NoError(t, err) + assert.Equal(t, "https://github.com/peter/calculator/compare/feature%2Foperations...feature%2Fsum-operation?expand=1", url) + }, + }, { testName: "Opens a link to new pull request on gitlab", from: "feature/ui", @@ -95,6 +114,15 @@ func TestGetPullRequestURL(t *testing.T) { assert.Equal(t, "https://gitlab.com/peter/public/calculator/merge_requests/new?merge_request[source_branch]=feature%2Fui", url) }, }, + { + testName: "Opens a link to new pull request on gitlab with https remote url in nested groups", + from: "feature/ui", + remoteUrl: "https://gitlab.com/peter/public/calculator.git", + test: func(url string, err error) { + assert.NoError(t, err) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/merge_requests/new?merge_request[source_branch]=feature%2Fui", url) + }, + }, { testName: "Opens a link to new pull request on gitlab with specific target branch", from: "feature/commit-ui", @@ -115,6 +143,16 @@ func TestGetPullRequestURL(t *testing.T) { assert.Equal(t, "https://gitlab.com/peter/public/calculator/merge_requests/new?merge_request[source_branch]=feature%2Fcommit-ui&merge_request[target_branch]=epic%2Fui", url) }, }, + { + testName: "Opens a link to new pull request on gitlab with https remote url with specific target branch in nested groups", + from: "feature/commit-ui", + to: "epic/ui", + remoteUrl: "https://gitlab.com/peter/public/calculator.git", + test: func(url string, err error) { + assert.NoError(t, err) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/merge_requests/new?merge_request[source_branch]=feature%2Fcommit-ui&merge_request[target_branch]=epic%2Fui", url) + }, + }, { testName: "Opens a link to new pull request on bitbucket with a custom SSH username", from: "feature/profile-page",