summaryrefslogtreecommitdiffstats
path: root/routers/web/goget.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-04-01 16:47:50 +0800
committerGitHub <noreply@github.com>2022-04-01 16:47:50 +0800
commit65f17bfc31f0f2659978d4d1d5ff825146c53a4d (patch)
treec039c5b332c7a4cb72ee7f92bed10c97df1fe5dd /routers/web/goget.go
parent5b7466053d993685939da8623fb78e94e4ee0797 (diff)
downloadgitea-65f17bfc31f0f2659978d4d1d5ff825146c53a4d.tar.gz
gitea-65f17bfc31f0f2659978d4d1d5ff825146c53a4d.zip
Refactor legacy `unknwon/com` package, improve golangci lint (#19284)
The main purpose is to refactor the legacy `unknwon/com` package. 1. Remove most imports of `unknwon/com`, only `util/legacy.go` imports the legacy `unknwon/com` 2. Use golangci's depguard to process denied packages 3. Fix some incorrect values in golangci.yml, eg, the version should be quoted string `"1.18"` 4. Use correctly escaped content for `go-import` and `go-source` meta tags 5. Refactor `com.Expand` to our stable (and the same fast) `vars.Expand`, our `vars.Expand` can still return partially rendered content even if the template is not good (eg: key mistach).
Diffstat (limited to 'routers/web/goget.go')
-rw-r--r--routers/web/goget.go32
1 files changed, 16 insertions, 16 deletions
diff --git a/routers/web/goget.go b/routers/web/goget.go
index 4a31fcc2c5..a58739fe42 100644
--- a/routers/web/goget.go
+++ b/routers/web/goget.go
@@ -5,6 +5,8 @@
package web
import (
+ "fmt"
+ "html"
"net/http"
"net/url"
"path"
@@ -14,8 +16,6 @@ import (
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
-
- "github.com/unknwon/com"
)
func goGet(ctx *context.Context) {
@@ -65,23 +65,23 @@ func goGet(ctx *context.Context) {
if appURL.Scheme == string(setting.HTTP) {
insecure = "--insecure "
}
- ctx.RespHeader().Set("Content-Type", "text/html")
- ctx.Status(http.StatusOK)
- _, _ = ctx.Write([]byte(com.Expand(`<!doctype html>
+
+ goGetImport := context.ComposeGoGetImport(ownerName, trimmedRepoName)
+ goImportContent := fmt.Sprintf("%s git %s", goGetImport, repo_model.ComposeHTTPSCloneURL(ownerName, repoName) /*CloneLink*/)
+ goSourceContent := fmt.Sprintf("%s _ %s %s", goGetImport, prefix+"{/dir}" /*GoDocDirectory*/, prefix+"{/dir}/{file}#L{line}" /*GoDocFile*/)
+ goGetCli := fmt.Sprintf("go get %s%s", insecure, goGetImport)
+
+ res := fmt.Sprintf(`<!doctype html>
<html>
<head>
- <meta name="go-import" content="{GoGetImport} git {CloneLink}">
- <meta name="go-source" content="{GoGetImport} _ {GoDocDirectory} {GoDocFile}">
+ <meta name="go-import" content="%s">
+ <meta name="go-source" content="%s">
</head>
<body>
- go get {Insecure}{GoGetImport}
+ %s
</body>
-</html>
-`, map[string]string{
- "GoGetImport": context.ComposeGoGetImport(ownerName, trimmedRepoName),
- "CloneLink": repo_model.ComposeHTTPSCloneURL(ownerName, repoName),
- "GoDocDirectory": prefix + "{/dir}",
- "GoDocFile": prefix + "{/dir}/{file}#L{line}",
- "Insecure": insecure,
- })))
+</html>`, html.EscapeString(goImportContent), html.EscapeString(goSourceContent), html.EscapeString(goGetCli))
+
+ ctx.RespHeader().Set("Content-Type", "text/html")
+ _, _ = ctx.Write([]byte(res))
}