summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorrune <runner.mei@gmail.com>2023-05-12 17:44:37 +0800
committerGitHub <noreply@github.com>2023-05-12 09:44:37 +0000
commit4b808133414e39348f56d691883426947bf2d322 (patch)
treece7dc40af8630e9e9db07f500dd56e032cdc00ba /modules
parent49808136c5af5946851c5486d4630482d79eff8b (diff)
downloadgitea-4b808133414e39348f56d691883426947bf2d322.tar.gz
gitea-4b808133414e39348f56d691883426947bf2d322.zip
Support SSH for go get (#24664)
fix #12192 Support SSH for go get --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Giteabot <teabot@gitea.io> Co-authored-by: mfk <mfk@hengwei.com.cn> Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'modules')
-rw-r--r--modules/context/repo.go9
-rw-r--r--modules/setting/repository.go2
2 files changed, 10 insertions, 1 deletions
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 84e07ab422..b20ea26e4e 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -319,7 +319,14 @@ func EarlyResponseForGoGetMeta(ctx *Context) {
ctx.PlainText(http.StatusBadRequest, "invalid repository path")
return
}
- goImportContent := fmt.Sprintf("%s git %s", ComposeGoGetImport(username, reponame), repo_model.ComposeHTTPSCloneURL(username, reponame))
+
+ var cloneURL string
+ if setting.Repository.GoGetCloneURLProtocol == "ssh" {
+ cloneURL = repo_model.ComposeSSHCloneURL(username, reponame)
+ } else {
+ cloneURL = repo_model.ComposeHTTPSCloneURL(username, reponame)
+ }
+ goImportContent := fmt.Sprintf("%s git %s", ComposeGoGetImport(username, reponame), cloneURL)
htmlMeta := fmt.Sprintf(`<meta name="go-import" content="%s">`, html.EscapeString(goImportContent))
ctx.PlainText(http.StatusOK, htmlMeta)
}
diff --git a/modules/setting/repository.go b/modules/setting/repository.go
index 56e7e6f4ac..153307a0b6 100644
--- a/modules/setting/repository.go
+++ b/modules/setting/repository.go
@@ -36,6 +36,7 @@ var (
DisableHTTPGit bool
AccessControlAllowOrigin string
UseCompatSSHURI bool
+ GoGetCloneURLProtocol string
DefaultCloseIssuesViaCommitsInAnyBranch bool
EnablePushCreateUser bool
EnablePushCreateOrg bool
@@ -273,6 +274,7 @@ func loadRepositoryFrom(rootCfg ConfigProvider) {
sec := rootCfg.Section("repository")
Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool()
Repository.UseCompatSSHURI = sec.Key("USE_COMPAT_SSH_URI").MustBool()
+ Repository.GoGetCloneURLProtocol = sec.Key("GO_GET_CLONE_URL_PROTOCOL").MustString("https")
Repository.MaxCreationLimit = sec.Key("MAX_CREATION_LIMIT").MustInt(-1)
Repository.DefaultBranch = sec.Key("DEFAULT_BRANCH").MustString(Repository.DefaultBranch)
RepoRootPath = sec.Key("ROOT").MustString(path.Join(AppDataPath, "gitea-repositories"))