summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-09-06 21:44:59 +0800
committerGitHub <noreply@github.com>2019-09-06 21:44:59 +0800
commit88e1c29df192df411c3d1721d32e311daaab4f09 (patch)
tree56462b86a0fc01f839f2abd4656a324cfe790158
parentc03d75fbd51174d0e7ffdbaf9e9e253438d06cf7 (diff)
downloadgitea-88e1c29df192df411c3d1721d32e311daaab4f09.tar.gz
gitea-88e1c29df192df411c3d1721d32e311daaab4f09.zip
Fix Go 1.13 private repository go get issue (#8112)
* Fix Go 1.13 invalid import path creation Signed-off-by: Rutger Broekhoff <rutger@viasalix.nl> * Apply suggested changes from #8100 Signed-off-by: Rutger Broekhoff <rutger@viasalix.nl>
-rw-r--r--modules/context/context.go15
-rw-r--r--modules/context/repo.go8
2 files changed, 20 insertions, 3 deletions
diff --git a/modules/context/context.go b/modules/context/context.go
index e89b2e25c4..ef6c19ed12 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -250,6 +250,19 @@ func Contexter() macaron.Handler {
if ctx.Query("go-get") == "1" {
ownerName := c.Params(":username")
repoName := c.Params(":reponame")
+ trimmedRepoName := strings.TrimSuffix(repoName, ".git")
+
+ if ownerName == "" || trimmedRepoName == "" {
+ _, _ = c.Write([]byte(`<!doctype html>
+<html>
+ <body>
+ invalid import path
+ </body>
+</html>
+`))
+ c.WriteHeader(400)
+ return
+ }
branchName := "master"
repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName)
@@ -277,7 +290,7 @@ func Contexter() macaron.Handler {
</body>
</html>
`, map[string]string{
- "GoGetImport": ComposeGoGetImport(ownerName, strings.TrimSuffix(repoName, ".git")),
+ "GoGetImport": ComposeGoGetImport(ownerName, trimmedRepoName),
"CloneLink": models.ComposeHTTPSCloneURL(ownerName, repoName),
"GoDocDirectory": prefix + "{/dir}",
"GoDocFile": prefix + "{/dir}/{file}#L{line}",
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 1499145f74..3ef726f2e8 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -201,10 +201,14 @@ func ComposeGoGetImport(owner, repo string) string {
// .netrc file.
func EarlyResponseForGoGetMeta(ctx *Context) {
username := ctx.Params(":username")
- reponame := ctx.Params(":reponame")
+ reponame := strings.TrimSuffix(ctx.Params(":reponame"), ".git")
+ if username == "" || reponame == "" {
+ ctx.PlainText(400, []byte("invalid repository path"))
+ return
+ }
ctx.PlainText(200, []byte(com.Expand(`<meta name="go-import" content="{GoGetImport} git {CloneLink}">`,
map[string]string{
- "GoGetImport": ComposeGoGetImport(username, strings.TrimSuffix(reponame, ".git")),
+ "GoGetImport": ComposeGoGetImport(username, reponame),
"CloneLink": models.ComposeHTTPSCloneURL(username, reponame),
})))
}