summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauris BH <lauris@nix.lv>2019-01-30 23:04:19 +0200
committerzeripath <art27@cantab.net>2019-01-30 21:04:19 +0000
commit80098bd7526fed84cfb4fa48272be71541b37205 (patch)
treea059983aea63151baa392e1d0a9bfdc320240870
parent57a69ef277546414893a38feb70412aa4c32330e (diff)
downloadgitea-80098bd7526fed84cfb4fa48272be71541b37205.tar.gz
gitea-80098bd7526fed84cfb4fa48272be71541b37205.zip
Fix go-get URL generation (#5905)
-rw-r--r--models/repo.go3
-rw-r--r--modules/context/context.go2
-rw-r--r--modules/context/repo.go3
3 files changed, 5 insertions, 3 deletions
diff --git a/models/repo.go b/models/repo.go
index 51ea1c94bc..08908c8b06 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -11,6 +11,7 @@ import (
"fmt"
"html/template"
"io/ioutil"
+ "net/url"
"os"
"os/exec"
"path"
@@ -834,7 +835,7 @@ type CloneLink struct {
// ComposeHTTPSCloneURL returns HTTPS clone URL based on given owner and repository name.
func ComposeHTTPSCloneURL(owner, repo string) string {
- return fmt.Sprintf("%s%s/%s.git", setting.AppURL, owner, repo)
+ return fmt.Sprintf("%s%s/%s.git", setting.AppURL, url.QueryEscape(owner), url.QueryEscape(repo))
}
func (repo *Repository) cloneLink(e Engine, isWiki bool) *CloneLink {
diff --git a/modules/context/context.go b/modules/context/context.go
index b9736e56ef..421d1d5f4f 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -209,7 +209,7 @@ func Contexter() macaron.Handler {
if err == nil && len(repo.DefaultBranch) > 0 {
branchName = repo.DefaultBranch
}
- prefix := setting.AppURL + path.Join(ownerName, repoName, "src", "branch", branchName)
+ prefix := setting.AppURL + path.Join(url.QueryEscape(ownerName), url.QueryEscape(repoName), "src", "branch", branchName)
c.Header().Set("Content-Type", "text/html")
c.WriteHeader(http.StatusOK)
c.Write([]byte(com.Expand(`<!doctype html>
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 310aa886d3..f9e366ed48 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -8,6 +8,7 @@ package context
import (
"fmt"
"io/ioutil"
+ "net/url"
"path"
"strings"
@@ -171,7 +172,7 @@ func RetrieveBaseRepo(ctx *Context, repo *models.Repository) {
// ComposeGoGetImport returns go-get-import meta content.
func ComposeGoGetImport(owner, repo string) string {
- return path.Join(setting.Domain, setting.AppSubURL, owner, repo)
+ return path.Join(setting.Domain, setting.AppSubURL, url.QueryEscape(owner), url.QueryEscape(repo))
}
// EarlyResponseForGoGetMeta responses appropriate go-get meta with status 200