From be1b33c1971a5fdf5356dafa43b83df837fa656e Mon Sep 17 00:00:00 2001 From: zeripath Date: Thu, 13 Aug 2020 05:19:04 +0100 Subject: [PATCH] Do not add prefix on http/https submodule links (#12477) Fix #12345 Signed-off-by: Andrew Thornton --- modules/git/submodule.go | 6 +++--- modules/git/submodule_test.go | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/git/submodule.go b/modules/git/submodule.go index 222a5e4f8..bb094bda5 100644 --- a/modules/git/submodule.go +++ b/modules/git/submodule.go @@ -97,13 +97,13 @@ func getRefURL(refURL, urlPrefix, repoFullName string) string { for _, scheme := range supportedSchemes { if ref.Scheme == scheme { - if urlPrefixHostname == refHostname { - return urlPrefix + path.Clean(path.Join("/", ref.Path)) - } else if ref.Scheme == "http" || ref.Scheme == "https" { + if ref.Scheme == "http" || ref.Scheme == "https" { if len(ref.User.Username()) > 0 { return ref.Scheme + "://" + fmt.Sprintf("%v", ref.User) + "@" + ref.Host + ref.Path } return ref.Scheme + "://" + ref.Host + ref.Path + } else if urlPrefixHostname == refHostname { + return urlPrefix + path.Clean(path.Join("/", ref.Path)) } else { return "http://" + refHostname + ref.Path } diff --git a/modules/git/submodule_test.go b/modules/git/submodule_test.go index 458c547dc..fcb0c6fd6 100644 --- a/modules/git/submodule_test.go +++ b/modules/git/submodule_test.go @@ -28,6 +28,7 @@ func TestGetRefURL(t *testing.T) { {"git://git@try.gitea.io:9999/go-gitea/gitea", "https://try.gitea.io/", "go-gitea/sdk", "https://try.gitea.io/go-gitea/gitea"}, {"ssh://git@127.0.0.1:9999/go-gitea/gitea", "https://127.0.0.1:3000/", "go-gitea/sdk", "https://127.0.0.1:3000/go-gitea/gitea"}, {"https://gitea.com:3000/user1/repo1.git", "https://127.0.0.1:3000/", "user/repo2", "https://gitea.com:3000/user1/repo1"}, + {"https://example.gitea.com/gitea/user1/repo1.git", "https://example.gitea.com/gitea/", "user/repo2", "https://example.gitea.com/gitea/user1/repo1"}, {"https://username:password@github.com/username/repository.git", "/", "username/repository2", "https://username:password@github.com/username/repository"}, {"somethingbad", "https://127.0.0.1:3000/go-gitea/gitea", "/", ""}, {"git@localhost:user/repo", "https://localhost/", "user2/repo1", "https://localhost/user/repo"},