diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-04-01 16:47:50 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-01 16:47:50 +0800 |
commit | 65f17bfc31f0f2659978d4d1d5ff825146c53a4d (patch) | |
tree | c039c5b332c7a4cb72ee7f92bed10c97df1fe5dd /routers/web/goget.go | |
parent | 5b7466053d993685939da8623fb78e94e4ee0797 (diff) | |
download | gitea-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.go | 32 |
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)) } |