Browse Source

able to disable SSH for #883

Unknwon 10 years ago
parent
commit
2a2596fe61
11 changed files with 24 additions and 13 deletions
  1. 1 1
      README.md
  2. 1 1
      README_ZH.md
  3. 6 0
      cmd/serve.go
  4. 2 0
      conf/app.ini
  5. 1 1
      gogs.go
  6. 0 2
      models/action.go
  7. 2 2
      models/repo.go
  8. 1 0
      modules/middleware/repo.go
  9. 4 2
      modules/setting/setting.go
  10. 1 1
      templates/.VERSION
  11. 5 3
      templates/repo/header.tmpl

+ 1 - 1
README.md

@@ -7,7 +7,7 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.
 
 ![Demo](http://gogs.qiniudn.com/gogs_demo.gif)
 
-##### Current version: 0.5.12 Beta
+##### Current version: 0.5.13 Beta
 
 ### NOTICES
 

+ 1 - 1
README_ZH.md

@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。
 
 ![Demo](http://gogs.qiniudn.com/gogs_demo.gif)
 
-##### 当前版本:0.5.12 Beta
+##### 当前版本:0.5.13 Beta
 
 ## 开发目的
 

+ 6 - 0
cmd/serve.go

@@ -33,6 +33,12 @@ var CmdServ = cli.Command{
 func setup(logPath string) {
 	setting.NewConfigContext()
 	log.NewGitLogger(filepath.Join(setting.LogRootPath, logPath))
+
+	if setting.DisableSSH {
+		println("Gogs: SSH has been disabled")
+		os.Exit(1)
+	}
+
 	models.LoadModelsConfig()
 
 	if models.UseSQLite3 {

+ 2 - 0
conf/app.ini

@@ -18,6 +18,8 @@ DOMAIN = localhost
 ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
 HTTP_ADDR =
 HTTP_PORT = 3000
+; Disable SSH feature when not available
+DISABLE_SSH = false
 SSH_PORT = 22
 ; Disable CDN even in "prod" mode
 OFFLINE_MODE = false

+ 1 - 1
gogs.go

@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.5.12.0206 Beta"
+const APP_VER = "0.5.13.0207 Beta"
 
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())

+ 0 - 2
models/action.go

@@ -119,8 +119,6 @@ func (a Action) GetIssueInfos() []string {
 
 func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, commits []*base.PushCommit) error {
 	for _, c := range commits {
-		// FIXME: should not be a reference when it comes with action.
-		// e.g. fixes #1 will not have duplicated reference message.
 		for _, ref := range IssueReferenceKeywordsPat.FindAllString(c.Message, -1) {
 			ref := ref[strings.IndexByte(ref, byte(' '))+1:]
 			ref = strings.TrimRightFunc(ref, func(c rune) bool {

+ 2 - 2
models/repo.go

@@ -247,8 +247,8 @@ func (repo *Repository) CloneLink() (cl CloneLink, err error) {
 	if err = repo.GetOwner(); err != nil {
 		return cl, err
 	}
-	if setting.SshPort != 22 {
-		cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.Domain, setting.SshPort, repo.Owner.LowerName, repo.LowerName)
+	if setting.SSHPort != 22 {
+		cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.Domain, setting.SSHPort, repo.Owner.LowerName, repo.LowerName)
 	} else {
 		cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.Domain, repo.Owner.LowerName, repo.LowerName)
 	}

+ 1 - 0
modules/middleware/repo.go

@@ -386,6 +386,7 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler {
 		ctx.Data["IsRepositoryOwner"] = ctx.Repo.IsOwner
 		ctx.Data["IsRepositoryTrueOwner"] = ctx.Repo.IsTrueOwner
 
+		ctx.Data["DisableSSH"] = setting.DisableSSH
 		ctx.Repo.CloneLink, err = repo.CloneLink()
 		if err != nil {
 			ctx.Handle(500, "CloneLink", err)

+ 4 - 2
modules/setting/setting.go

@@ -50,7 +50,8 @@ var (
 	Protocol           Scheme
 	Domain             string
 	HttpAddr, HttpPort string
-	SshPort            int
+	DisableSSH         bool
+	SSHPort            int
 	OfflineMode        bool
 	DisableRouterLog   bool
 	CertFile, KeyFile  string
@@ -209,7 +210,8 @@ func NewConfigContext() {
 	Domain = sec.Key("DOMAIN").MustString("localhost")
 	HttpAddr = sec.Key("HTTP_ADDR").MustString("0.0.0.0")
 	HttpPort = sec.Key("HTTP_PORT").MustString("3000")
-	SshPort = sec.Key("SSH_PORT").MustInt(22)
+	DisableSSH = sec.Key("DISABLE_SSH").MustBool()
+	SSHPort = sec.Key("SSH_PORT").MustInt(22)
 	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
 	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir)

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.5.12.0206 Beta
+0.5.13.0207 Beta

+ 5 - 3
templates/repo/header.tmpl

@@ -18,9 +18,11 @@
                 </a>
                 <div id="repo-header-download-drop" class="drop-down">
                     <div id="repo-clone" class="clear">
-                        <button class="btn btn-blue left left btn-left-radius" id="repo-clone-ssh" data-link="{{$.CloneLink.SSH}}">SSH</button>
-                        <button class="btn btn-gray left" id="repo-clone-https" data-link="{{$.CloneLink.HTTPS}}">HTTPS</button>
-                        <input id="repo-clone-url" class="ipt ipt-disabled left" value="{{$.CloneLink.SSH}}" readonly />
+                        {{if not $.DisableSSH}}
+                        <button class="btn btn-blue left btn-left-radius" id="repo-clone-ssh" data-link="{{$.CloneLink.SSH}}">SSH</button>
+                        {{end}}
+                        <button class="btn {{if $.DisableSSH}}btn-blue{{else}}btn-gray{{end}} left" id="repo-clone-https" data-link="{{$.CloneLink.HTTPS}}">HTTPS</button>
+                        <input id="repo-clone-url" class="ipt ipt-disabled left" value="{{if $.DisableSSH}}{{$.CloneLink.HTTPS}}{{else}}{{$.CloneLink.SSH}}{{end}}" readonly />
                         <button id="repo-clone-copy" class="btn btn-black left btn-right-radius" data-copy-val="val" data-copy-from="#repo-clone-url" original-title="{{$.i18n.Tr "repo.click_to_copy"}}" data-original-title="{{$.i18n.Tr "repo.click_to_copy"}}" data-after-title="{{$.i18n.Tr "repo.copied"}}">{{$.i18n.Tr "repo.copy_link"}}</button>
                         <p class="text-center" id="repo-clone-help">{{$.i18n.Tr "repo.clone_helper" "http://git-scm.com/book/en/Git-Basics-Getting-a-Git-Repository" | Str2html}}</p>
                         <hr/>