* 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>tags/v1.9.3
@@ -249,6 +249,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) | |||
@@ -276,7 +289,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}", |
@@ -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), | |||
}))) | |||
} |