From c1ca1c8f99bb15a222728d7def249568133f9e1b Mon Sep 17 00:00:00 2001 From: Chris McDonnell Date: Thu, 27 Feb 2025 12:23:10 -0500 Subject: [PATCH] URL encode gitlab brackets to make consistent with branch names Some operating systems 'open' implementations do not like when some special characters are unencoded, so they will double-enconde the branch name, which we already encode. This particularly matters since branch names with / are common --- pkg/commands/hosting_service/definitions.go | 4 ++-- .../hosting_service/hosting_service_test.go | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pkg/commands/hosting_service/definitions.go b/pkg/commands/hosting_service/definitions.go index d3f8f2bb8..a192bbbe6 100644 --- a/pkg/commands/hosting_service/definitions.go +++ b/pkg/commands/hosting_service/definitions.go @@ -33,8 +33,8 @@ var bitbucketServiceDef = ServiceDefinition{ var gitLabServiceDef = ServiceDefinition{ provider: "gitlab", - pullRequestURLIntoDefaultBranch: "/-/merge_requests/new?merge_request[source_branch]={{.From}}", - pullRequestURLIntoTargetBranch: "/-/merge_requests/new?merge_request[source_branch]={{.From}}&merge_request[target_branch]={{.To}}", + pullRequestURLIntoDefaultBranch: "/-/merge_requests/new?merge_request%5Bsource_branch%5D={{.From}}", + pullRequestURLIntoTargetBranch: "/-/merge_requests/new?merge_request%5Bsource_branch%5D={{.From}}&merge_request%5Btarget_branch%5D={{.To}}", commitURL: "/-/commit/{{.CommitHash}}", regexStrings: defaultUrlRegexStrings, repoURLTemplate: defaultRepoURLTemplate, diff --git a/pkg/commands/hosting_service/hosting_service_test.go b/pkg/commands/hosting_service/hosting_service_test.go index d01ca3768..2278d46d2 100644 --- a/pkg/commands/hosting_service/hosting_service_test.go +++ b/pkg/commands/hosting_service/hosting_service_test.go @@ -112,7 +112,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@gitlab.com:peter/calculator.git", test: func(url string, err error) { assert.NoError(t, err) - assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request[source_branch]=feature%2Fui", url) + assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fui", url) }, }, { @@ -121,7 +121,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@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) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fui", url) }, }, { @@ -130,7 +130,7 @@ func TestGetPullRequestURL(t *testing.T) { 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) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fui", url) }, }, { @@ -140,7 +140,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@gitlab.com:peter/calculator.git", test: func(url string, err error) { assert.NoError(t, err) - assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request[source_branch]=feature%2Fcommit-ui&merge_request[target_branch]=epic%2Fui", url) + assert.Equal(t, "https://gitlab.com/peter/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fcommit-ui&merge_request%5Btarget_branch%5D=epic%2Fui", url) }, }, { @@ -150,7 +150,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@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) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fcommit-ui&merge_request%5Btarget_branch%5D=epic%2Fui", url) }, }, { @@ -160,7 +160,7 @@ func TestGetPullRequestURL(t *testing.T) { 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) + assert.Equal(t, "https://gitlab.com/peter/public/calculator/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fcommit-ui&merge_request%5Btarget_branch%5D=epic%2Fui", url) }, }, { @@ -362,7 +362,7 @@ func TestGetPullRequestURL(t *testing.T) { }, test: func(url string, err error) { assert.NoError(t, err) - assert.Equal(t, "https://my.domain.test:1111/johndoe/social_network/-/merge_requests/new?merge_request[source_branch]=feature%2Fprofile-page", url) + assert.Equal(t, "https://my.domain.test:1111/johndoe/social_network/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fprofile-page", url) }, }, { @@ -410,7 +410,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@gitlab.com:me/public/repo-with-issues.git", test: func(url string, err error) { assert.NoError(t, err) - assert.Equal(t, "https://gitlab.com/me/public/repo-with-issues/-/merge_requests/new?merge_request[source_branch]=feature%2FsomeIssue%23123&merge_request[target_branch]=master", url) + assert.Equal(t, "https://gitlab.com/me/public/repo-with-issues/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2FsomeIssue%23123&merge_request%5Btarget_branch%5D=master", url) }, }, { @@ -420,7 +420,7 @@ func TestGetPullRequestURL(t *testing.T) { remoteUrl: "git@gitlab.com:me/public/repo-with-issues.git", test: func(url string, err error) { assert.NoError(t, err) - assert.Equal(t, "https://gitlab.com/me/public/repo-with-issues/-/merge_requests/new?merge_request[source_branch]=yolo&merge_request[target_branch]=archive%2Fnever-ending-feature%23666", url) + assert.Equal(t, "https://gitlab.com/me/public/repo-with-issues/-/merge_requests/new?merge_request%5Bsource_branch%5D=yolo&merge_request%5Btarget_branch%5D=archive%2Fnever-ending-feature%23666", url) }, }, }